Image Steganography

Overview

Hide Text to Image embeds secret text into an image's pixels using LSB (least significant bit) steganography, and can also extract hidden text from a processed image. An optional password scrambles the embedding positions so the text can only be read back with the correct password. All processing runs locally in your browser — the image is never uploaded anywhere.

How Strength Levels Affect Capacity and Visibility

The level setting (0–5) controls how many bits per pixel channel are used to store data. Level 0 uses the fewest bits — smallest capacity, changes nearly invisible. Level 5 uses the most bits — higher capacity, but on solid-color or gradient areas faint noise may be visible to the naked eye. Level 3 (default) is the recommended balance.

Choosing a level

  • Levels 0–2 — maximum stealth, suitable for short text (under a few dozen characters)
  • Level 3 (default) — moderate capacity, works for typical messages
  • Levels 4–5 — hide longer text; faint noise possible on plain or gradient areas

Password protection

  • Password scrambles the bit embedding positions
  • Without the correct password, extraction produces garbage output
  • Forgetting the password means the hidden text cannot be recovered
  • Without any password, anyone using the same level can extract the text

Capacity Is Limited by Image Pixel Count

The amount of text an image can hold is proportional to its total pixel count. A 100×100 pixel image (10,000 pixels) can only store a few hundred characters even at the highest level. If you need to hide a long message, use a larger image as the carrier.

Why the Output Must Stay as PNG

The output file is always PNG. If you re-save it as JPEG, convert the format, or share it through a platform that re-compresses uploads (social media, messaging apps), the LSB data is destroyed and extraction will fail. Transfer the PNG file directly without any intermediate processing.

The tool accepts PNG, JPEG, and WebP as input. All Unicode is supported, including emoji and multi-byte characters.