Image-in-Image Extractor
Extract hidden images from stego photos. Auto-detects 12 configurations (4 bit depths × 3 channels). Bit plane visualizer, pre-scan anomaly detection, AES-256 decryption, forensic report.
Drop image file or click to browse
PNG, BMP, WebP, TIFF, JPEG — max 50 MB (10 MB on mobile)
100% Client-Side Processing
Your image is decoded using the Canvas API entirely in your browser. Nothing is uploaded. Output is always lossless PNG.
How to Extract a Hidden Image from a Photo (4 steps)
- Upload the suspected stego image — instant pre-scan shows anomalous LSB patterns per channel
- Click Auto-Detect to try all 12 configurations (4 bit depths × 3 channel modes)
- View the multi-depth extraction grid — the correct configuration produces the clearest recovered image
- Enter your password if the hidden image was AES-encrypted, then download the recovered image
Image-in-Image Decoder — Detection & Extraction Methods
| Method | Technique | Speed | Best For |
|---|---|---|---|
| Auto-Detect | Tries all 12 bit-depth × channel combinations automatically | ~1–2 seconds for 2MP image | Default — covers all standard encodings |
| 1-bit extraction | Reads 1 LSB per channel — maximum stealth encodings | Fastest | Low-capacity or stealth-mode hidden images |
| 2-bit extraction | Reads 2 LSBs per channel — most common bit depth | Fast | Recommended-mode encoded images |
| 4-bit extraction | Reads 4 LSBs per channel — maximum capacity encodings | Fast | Quality-mode or large secret images |
| AES-256-GCM | Decrypts extracted data — wrong password produces noise | Requires correct password | Encrypted hidden images |
Frequently Asked Questions
How do I know if an image contains a hidden image?
The pre-scan shows LSB frequency per channel. A frequency significantly below 0.5 (e.g., 0.3) in any channel indicates possible hidden data. The suspicion score gives an overall estimate. Bit plane analysis in Forensic mode makes the pattern visible.
The auto-detect shows no valid payload. What should I do?
The image may have been encoded with a non-standard tool, or uploaded through a platform that re-compressed it (Instagram, WhatsApp). Try the Forensic mode to manually browse all 24 bit-plane combinations. JPEG images may have had hidden data destroyed by compression.
I see an image in the extraction grid but it looks like noise. Is it encrypted?
Possibly. High-entropy output (uniformly noisy, no recognizable structure) with low suspicion score suggests AES-256-GCM encryption. Enable the password field and enter the password used during encoding.
What bit depth and channel was used for encoding?
Use Auto-Detect — it tries all 12 configurations. The one that produces the highest-quality recovered image is the correct configuration. The multi-depth grid shows all four bit depths simultaneously so the right one is obvious.
Can I decode images from incoherency.co.uk (the other image-in-image tool)?
That tool uses a different encoding format (direct pixel LSB-MSB substitution without a frame header). It is not compatible with this tool's framed format. Use the Image Steganography Extractor instead, which supports that classic LSB-MSB approach.
Is my image uploaded anywhere?
Never. All extraction runs in a WebWorker in your browser using the Canvas and Web Crypto APIs. Your image never leaves your device.
What do the bit planes tell me?
Each bit plane shows just one bit per pixel as a black/white image. A natural image has mostly random-looking LSB planes. If you see a structured pattern (shapes, textures) in the low bit planes of one channel, that channel contains hidden data.