Hide secret text messages inside images — invisible to the naked eye.
A Flutter-based image steganography app that embeds secret text into PNG images using the 2nd Least Significant Bit (2nd LSB) technique. The encoded image looks identical to the original.
| Home | Encode | Decode | Hidden Message |
![]() |
![]() |
![]() |
![]() |
- Encode — Hide a text message inside any image from your gallery or camera
- Decode — Extract hidden text from a previously encoded image
- Encoded images auto-saved to
DCIM/on your device - Share encoded images directly from the app
| Use Case | Description |
|---|---|
| 🗒️ Secret notes | Embed personal notes inside a photo only you can decode |
| 💌 Hidden messages | Send a secret message to a friend inside a normal-looking image |
| 🎭 Fun & pranks | Hide a funny message in a photo and challenge friends to find it |
| 🔒 Private data | Store sensitive info invisibly inside an image |
- Pick any image from your gallery or camera
- Type your secret message
- Hit Encode — a new PNG is saved to your
DCIM/folder - Share it with anyone
- Open the app → Decode → select the image → message revealed ✅
Text is converted to binary and embedded into the 2nd LSB of each RGB channel per pixel. A 32-bit header stores the message length for accurate extraction. The visual difference is imperceptible to the human eye.
Original pixel R: 1101 1010
Encoded pixel R: 1101 1x10 ← 2nd bit carries your message
Max capacity: width × height × 3 − 32 bits
- Flutter (Dart) — SDK
^3.7.0 image— pixel-level image manipulationimage_picker— gallery/camera accesspermission_handler— runtime permissionsshare_plus— share encoded images
- Flutter SDK
^3.7.0 - Android device or emulator (API 21+)
flutter pub get
flutter runflutter build apk --releaseAPK output: build/app/outputs/flutter-apk/app-release.apk
- Camera
- Storage (read/write)
- PNG output only (lossless format required — JPEG compression destroys hidden data)
- Message size limited by image resolution



