Ghostmark

A lightweight image steganography tool by NQR

Privacy: All processing happens locally in your browser. Images are not uploaded.
Seeded, randomized LSB steganography with grayscale plus Floyd-Steinberg dithering. Encode and decode in your browser.
Tip: After choosing images, use the selection box in the Stego preview to position and resize the hidden image. Drag corners/edges to resize (hold Shift to lock aspect ratio). Drag the center to move.
Seed: By default, the seed is also written to the image header (top-left 8x8) for plug-and-play decoding.
If checked, the decoder must manually enter the same seed.
Flip the hidden image before encoding.
Rotation: Rotate the hidden image (degrees).
Strength: 0 = do not embed; 1 = full embed. Intermediate values randomly keep some original LSBs.

Stego Image Preview

Hidden Image Preview

Algorithms: grayscale = ITU-R BT.601 luma (0.299R, 0.587G, 0.114B). Dithering = Floyd-Steinberg (7/16, 3/16, 5/16, 1/16). LSB parity randomized per pixel with a Mulberry32 PRNG from a 32-bit seed; channel choice randomized per pixel.