Hide Text in an Image
Write a message into a picture's low bits, optionally encrypted.
Everything runs inside your browser. Your files never leave your device.
Drop your files here
.png, .jpg, .jpeg, .webp, .bmp · they stay on this device
Ask about Hide Text in an Image
Questions about what this tool does, which option to pick, or what it can and cannot handle.
The question you type here is sent to an AI provider to be answered — your files and whatever you put in the tool above are not, and the assistant cannot see them. Answers are generated and can be wrong. The tool itself is not guessing: it runs deterministic code on your device.
About the Hide Text in an Image
Steganography hides the existence of a message rather than its contents. Encryption produces something obviously secret; a picture with a message in it looks like a picture.
The method here is least-significant-bit substitution. Every pixel stores its red, green and blue channels as numbers from 0 to 255, and altering the last bit of each shifts that channel by one step out of 256 — a change no screen renders differently and no eye detects. Those spare bits, read in sequence, carry your message. A modest photograph holds tens of thousands of characters this way.
Two limits deserve stating before you rely on it. The first is that hiding is not encrypting: anyone who suspects a file and reads its low bits gets your text. That is why this page offers a password, and why using one changes the situation entirely — with a password the hidden bits are AES-256-GCM ciphertext, so discovering them yields nothing without the key. Hiding then buys you the fact that nobody looked, and encryption covers you when somebody does.
The second is fragility. The message lives in the exact pixel values, so anything that recompresses the image destroys it. Saving as JPEG destroys it. Most chat applications and social networks recompress on upload, which destroys it. The output is PNG for that reason, and it must stay PNG and travel by a route that transfers files rather than re-encoding them — an email attachment, a file share, a cloud link.
Used within those limits it is genuinely effective. Used outside them it fails silently, which is the worst way for anything security-adjacent to fail, and the reason both are said plainly here rather than in a footnote.
How to use it
- 1Drop in the image that will carry the message. Photographs and detailed pictures hide it better than flat graphics.
- 2Type the message. The result panel reports how many bytes were embedded against what the image could hold.
- 3Add a password unless you genuinely only need concealment — with one, the text is encrypted before it is hidden.
- 4Leave the bits per channel at one unless the message does not fit; two doubles capacity and is slightly more visible in flat areas.
- 5Download the PNG and send it as a file. Any route that recompresses the image erases the message.
Questions
- Can someone tell the image has a message in it?
- Not by looking. Statistical analysis of the low bits can suggest it, and anyone who runs the right tool will find the payload. Treat this as concealment from casual inspection, not as resistance to a determined examiner — which is exactly why the password option exists.
- Why must the output stay a PNG?
- Because PNG is lossless and JPEG is not. JPEG compression works by discarding detail the eye does not notice, and the low bits carrying your message are precisely that detail. One re-save as JPEG and the message is gone with no warning.
- How much text can an image hold?
- About one bit per colour channel per pixel, so roughly three bits per pixel at the default setting. A 1000 by 1000 image holds around 375 KB, which is far more prose than anyone puts in one. The tool refuses and tells you the capacity if the message is too large.
- Will this survive being posted on social media?
- No. Essentially every platform recompresses uploaded images, which erases the message. Send the file directly — as an attachment, or through a service that stores files rather than optimising photographs.

