✳ OMNIVIEWER

Drop a JPEG. Any size.

safe · secure · no server · works offline · fast

…or just start typing at the cursor.

Or try it now

↓ scroll for about & FAQ

View a JPEG file online — without uploading it

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.

Strip EXIF — including the GPS position

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.

See the quality it was saved at

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, progressive — and detection that tells the truth

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.

FAQ

Is my image uploaded anywhere?

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.

What is a JPEG file, really?

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.

Do JPEGs contain EXIF or GPS data?

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.

How do I remove EXIF and GPS metadata from a JPEG?

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.

Does stripping metadata re-compress or reduce quality?

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.

What quality was this JPEG saved at?

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 "≈".

How large a JPEG can I open?

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.

What is the difference between baseline and progressive JPEG?

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.