Neatbo.

Recover stored MPO views without reencoding

Recover every indexed JPEG from a bounded local MPO, keep the original and EXIF, and audit complete offsets, raw tags and hashes.

Recover stored captures rather than crop a single image

A 3DS owner asked for an app or browser that produces separate JPEGs from an MPO, then confirmed that a plugin solved the task. Another author reported that ordinary programs do not recognize the multiple stored images. The endpoint is the separately compressed captures; cropping or converting the first displayed raster cannot recover the other originals.

Select one existing MPO or JPEG carrying the supported MP version 0100 index. T326 reads II/MM TIFF offsets and preserves MP-entry order even when physical stream order differs. It does not scan your camera or filesystem, infer left/right eyes, align stereo views or assemble a GIF.

Keep the complete original, streams and standalone copies

Download mpo-views.zip. Each view has an index-based controlled name. The original stream retains its MPF segments exactly. The standalone JPEG removes only MPF APP2, so stale pointers do not refer to nonexistent companion files. All other compressed image and permitted metadata bytes remain.

Complete deliverables
ArtifactPurposePreservation boundary
original.mpoPreserve the selected containerExact bytes, including gaps and trailing ranges
view-NNNN-original-stream.binAudit the indexed compressed sourceExact declared stream bytes, including MPF
view-NNNN.jpgOpen each view as a separate JPEGOnly MPF APP2 removed; image and EXIF remain
mpo-inventory.json / mpo-tags.csvAudit every view and typed fieldFull JSON and formula-safe CSV beyond the table

Inspect a legitimate camera gap and all metadata

The controlled Nintendo3DS original is 120198 bytes, named camera.mpo. Two indexed streams total 120197 bytes with a legitimate one-byte gap. Standalone JPEGs total 119939 bytes. Seven ZIP members deliver the source, two original streams, two standalone JPEGs and two complete reports. The gap remains in original.mpo with offset, length and SHA256.

MPF TIFF types 1–12, counts, raw hex, offsets, aliases and bounded next-IFD chains are inventoried without claiming complete camera-tag meaning. Bounded exact and partial value sharing is supported; directory/header overlaps, duplicate/unordered tags, cycles and unsupported framing refuse the whole file.

  • Compare every index, source offset/size and stream hash before using a view.
  • EXIF/GPS remains; this workflow is not anonymization.
  • Use downloads for dependencies, removed spans, every raw field and unindexed range.

Apply simultaneous budgets and recover the same original

One file may contain 2–1000 supported views and fit 50 MiB; filenames allow 512 UTF-16 units. Limits are 1024 tags per IFD, 20000 total MPF tags, 2048 IFDs, 64 chain levels and 20000 JPEG structural segments. Complete compact JSON plus CSV must fit 8 MiB. A small source cannot override expanded report limits.

A 1000-view archive has 2003 controlled members. Its 170 MiB allocation guard is dominated by three source lengths, 8 MiB reports and bounded headers, rather than an independently reachable supported ceiling. Cancellation discards the unfinished result; rerun the same file in a fresh Worker. Native evidence cancels at 100/1000 real views and verifies byte-identical full recovery.

Separate framing, decoding and stereo meaning

Supported JPEGs use 8-bit baseline/progressive framing with one or three components. SOF/SOS selectors, sampling, DQT, Huffman shape, structural lengths and EOI are checked. Compressed entropy is copied without decoding or full validity assurance; arbitrary damaged JPEG repair is outside scope.

Pillow 12.3.0 independently fully decoded every normal/capacity specimen and compared recovered RGB frames, EXIF IFD fields and APP1 bytes. This proves those actual inputs, not every camera or iPhone browser. Raw MP attributes and dependencies remain explicit without inferred eyes/depth or full CIPA conformance.

References

Tools in this category

Expand a tool to see its steps, options and supported formats, then open its workspace.

Extract MPO imagesRecover every indexed JPEG view from a local MPO, preserving compressed originals, EXIF and full offset/SHA evidence.

Select one MPO or JPEG carrying an MP index. Recover every stored view in index order, without pixel reencoding. Download one ZIP with the exact original, standalone JPEGs, original streams and complete inventory.

Steps

  1. Select one original MPO or MP-indexed JPEG and keep a separate copy.
  2. Run and inspect the view count, dimensions, order and unindexed byte count.
  3. Download mpo-views.zip; open every standalone JPEG you need.
  4. Use the complete inventory and original streams to audit offsets, metadata and SHA256.

Capabilities and limits

  • One file up to 50 MiB and a filename up to 512 UTF-16 units. JPEG MP version 0100, II/MM TIFF, 2–1000 in-bounds nonoverlapping indexed views; physical order may differ from index order.
  • 8-bit baseline/progressive JPEG with one or three components. SOF, SOS, selectors, sampling, DQT, Huffman shape, lengths and EOI are checked. Compressed entropy is preserved without decoding or full validity assurance; broken JPEG repair is outside scope.
  • All TIFF types 1–12 and bounded next-IFD chains are reported as typed raw values. Sorted unique tags and bounded exact/partial value aliases are supported; directory/header storage overlaps are refused. This does not interpret every camera attribute or certify full CIPA compliance.
  • At most 1024 tags per IFD, 20000 total MPF tags, 2048 total IFDs, 64 chain levels and 20000 indexed JPEG structural segments. Complete compact JSON plus CSV must fit 8 MiB. Every budget applies simultaneously; an excess or malformed file creates no archive.
  • The ZIP contains original.mpo, every view-NNNN-original-stream.bin, every view-NNNN.jpg, mpo-inventory.json and mpo-tags.csv. A 1000-view file has 2003 controlled members. The 170 MiB ZIP ceiling is a dominated allocation guard, not an independently reachable output promise.
  • Standalone JPEGs remove only MPF APP2 segments to eliminate stale cross-file index pointers. Compressed pixels, EXIF/GPS and other permitted metadata remain. The original container and indexed streams are byte exact. Gaps/trailing bytes remain in the original and receive offset, length and SHA records.
  • All view rows appear in the table. Complete offsets, dependency references, raw TIFF fields, removed spans and hashes are in downloads. Eye assignment and depth are not inferred; no stereo alignment or GIF assembly is performed.
  • Browser-local byte processing. No URL fetch, metadata execution, upload, camera/filesystem scan or cloud service. This is view recovery, not anonymization; sharing the output can retain GPS and other camera metadata.
Open Extract MPO images →