magiceyer is an R package for creating autostereograms (Magic Eye images) and hiding information using various steganography techniques.

Installation

# Install from GitHub
# devtools::install_github("yufree/magiceyer")

Features

1. Autostereograms (Magic Eye)

  • Create basic autostereograms from depth maps.
  • New: Support for textured stereograms using your own images.
  • New: QR-code based stereograms (scannable + hidden 3D).
  • New: Decode stereograms to recover the hidden depth map.

2. Steganography

  • LSB Steganography: Hide text in the least significant bits of image pixels.
  • Regression Steganography: Hide images/text in a synthetic regression dataset. The secret is revealed through a residual plot.

Quick Start

Magic Eye

library(magiceyer)
# Create 3D text in a noise pattern
met <- getmet("HELLO", w = 500, h = 500)
me <- getme(met)
plot(me)

QR Stereogram

# Scannable QR code with a hidden "3D" sign
hideqr("3D", url = "https://yufree.cn", file = "qr.png")

Hide Text in a Dataset

# Create a dataset where residuals show "SECRET"
dat <- stego_lm_hide_text("SECRET")
stego_lm_reveal(dat)

Hide Text in an Image (LSB)

# Hide message in an image
stego_hide("input.png", "Top Secret", out = "hidden.png")
# Recover it
stego_reveal("hidden.png")

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT