Skip to main content

Hide Text in an Image

Hide a short message in the least significant bits of an image's pixels, save it as PNG, and reveal it later with this same tool. The message is hidden, not encrypted.

Upload a PNG or BMP image

Drag and drop files here, or click to browse

Your images are processed in your browser and are not uploaded to Image York.
You retain full ownership of your images. Image York does not store or claim rights. View License

How the message is hidden

Every pixel stores red, green and blue values from 0 to 255. Changing the last binary digit of a value changes it by at most 1, which is not visible to the eye. This tool writes your message into those last digits, the least significant bits, one bit per colour channel and three bits per pixel.

The message is stored as UTF-8 text, so accents and other alphabets work. It is preceded by a short marker ("IYORK") and its length, which is how the Reveal mode knows where a message starts and ends. Only fully opaque pixels are used, because the browser can alter the low bits of semi-transparent pixels.

How much text fits

Each opaque pixel holds 3 bits, so 8 pixels hold 3 bytes. A 100 x 100 image (10,000 pixels) can carry 3,750 bytes, minus 9 bytes for the marker and length. Most photos have millions of pixels, so space is rarely the problem; the tool tells you if a message is too long for the image you chose.

What breaks the hidden message

The hidden bits survive only as long as the exact pixel values do. Any of these destroys them:

  • saving the image as JPG or WebP, or uploading it to a service that recompresses it, which includes most social networks and many messaging apps;
  • resizing, cropping, rotating or applying a filter;
  • taking a screenshot of the image.

Share the PNG as a file: by email attachment, cloud storage link or a file-transfer service that keeps files unchanged.

Hidden is not secure

Anyone with this tool, or anyone who knows to look at the low bits, can read the message. There is no password and no encryption. Statistical analysis can also reveal that an image has been modified this way. For anything confidential, encrypt the text with a proper encryption tool first and hide the encrypted result, or do not use an image at all.

Inputs, output and processing

Choose a PNG or BMP image. The output is always PNG, because PNG is lossless. Images created with an earlier version of this tool may not be readable, because that version wrote the bits in a different order than it read them. Hiding and revealing both run entirely in your browser; neither the image nor the message is uploaded.

Questions about this tool

Why does Reveal say no message was found?

Either the image was not created with this tool, or it was changed after saving (recompressed, resized or converted). The exact PNG file is needed.

I hid a message and sent the picture on WhatsApp. Why can my friend not read it?

Most messaging apps and social networks recompress pictures, and that wipes out the hidden bits. Send the PNG as a document or file attachment, or share it through cloud storage, so the file arrives unchanged.

Can I protect the hidden message with a password?

No. The tool hides the text but does not lock it, so anyone with this tool can read it. If the message is private, encrypt it with an encryption tool first and hide the encrypted text.

Can I hide a message in a JPG photo?

Not directly, because JPG compression would destroy the message. Convert the photo with JPG to PNG first, then open the PNG here. The result is always saved as PNG.

Will people notice that the picture has been changed?

Not by looking at it. Each colour value changes by 1 at most, which the eye cannot see. Special analysis software can sometimes detect that the low bits have been altered.

How long can my message be?

Each pixel holds 3 bits, so even a small image fits a long text. A 100 x 100 pixel image holds about 3,700 characters of plain English text. If your message does not fit, the tool tells you.