Drop a JPEG. Any size.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
OmniViewer opens a JPG right in your browser. Drop the file and it renders
immediately — on a checkerboard stage with Fit/100%/zoom controls,
pixelated above 100% so you can inspect single pixels — alongside a
dominant-color palette where every swatch copies its hex
value with a click. Behind the preview, the toolkit reads the container the
way the format spec does: JPEG is a stream of markers, and
the SEGMENTS tab lists every one (APP0 JFIF,
APP1 EXIF, DQT, SOF0, DHT,
SOS…) with offsets, sizes and plain-language
descriptions. There is no upload and no server: the parser reads four bytes
per marker and stops at the scan, so even a huge photo is analysed in a
handful of tiny reads.
Every photo a phone takes carries EXIF: the camera make and model, the lens, the exact timestamp, and often the GPS coordinates of where you were standing. Editors add XMP packets on top. OmniViewer shows a verdict the moment the file opens, and one click downloads a clean copy: the EXIF, XMP and every other metadata segment removed by pure byte surgery, the compressed image copied through untouched and never re-encoded — so the picture is pixel-identical and no quality is lost. Curious what's inside? Read inside a JPEG: markers, EXIF and the quantization tables.
A JPEG doesn't store its “quality” setting — it stores the quantization tables that setting produced. The STATS tab inverts the standard scaling to recover the approximate save quality, and reports the chroma subsampling (4:4:4, 4:2:2 or 4:2:0), whether the file is baseline or progressive, the component layout and the print density. The METADATA tab reads the camera fields and lets you edit the embedded comment; the raw and hex views show the actual bytes.
Baseline JPEGs decode top to bottom; progressive ones sharpen in passes
— the frame marker (SOF0 vs SOF2) says which,
and STATS surfaces it. Detection is by the file's magic bytes
(FF D8 FF), never the extension, so a
.jpeg, .jfif or mis-named file is recognised all
the same. Powered by the same engine as
fastjsonviewer.com and
hugecsv.com; OmniViewer opens
every file format.
No. OmniViewer is a static page with no server-side processing: your JPEG is read directly by your browser and never leaves your computer. Even the metadata stripper works locally, assembling the clean copy from byte slices of your original file.
A stream of markers. Each starts with a 0xFF byte: SOI opens the file, APPn segments carry metadata (APP0 is the JFIF header, APP1 the EXIF or XMP), DQT holds the quantization tables that set the quality, SOFn declares the dimensions and components, DHT the Huffman codes, and SOS begins the entropy-coded pixel data that runs to EOI. Everything but the scan sits in small segments at the front.
Almost every photo does. The APP1 segment carries a full EXIF block — camera make and model, lens, timestamps, exposure, and frequently the GPS position where the photo was taken. Photo editors add XMP packets with edit history and ratings. OmniViewer decodes what it finds and shows a verdict the moment the file opens.
Open the SEGMENTS tab and click "Download clean copy" (or use the Remove buttons on the METADATA privacy card). Every metadata segment — EXIF, GPS, XMP, comments, vendor blocks — is removed by pure byte surgery; the compressed image data is copied untouched, so the picture is bit-identical and no quality is lost.
No. A JPEG’s metadata segments are independent of the entropy-coded scan, so removing one never touches the pixels: the clean copy contains your original scan data byte for byte. Nothing is decoded, transformed or re-encoded — the image is pixel-identical.
The STATS tab estimates it. A JPEG stores the quantization tables the quality setting produced, not the setting itself, so OmniViewer inverts the standard IJG scaling to recover an approximate 1–100 quality. It is a close estimate for files saved with standard tables; encoders that use custom tables can read differently, so it is shown as "≈".
Effectively unlimited. The marker walk reads four bytes per segment and stops at the start of scan, so the metadata, segment list and quality read cost a handful of tiny reads at any size. The preview relies on your browser’s decoder; the segment, hex and raw views work regardless.
A baseline JPEG (frame marker SOF0) decodes in a single top-to-bottom pass; a progressive JPEG (SOF2) stores the image in successive passes so it sharpens as it loads. OmniViewer reads the frame marker and shows which one a file is in STATS. Both strip and inspect identically.