Inspect JPEG bytes.
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.
Drop a .jpg and OmniViewer opens a fast, windowed
hex view of the exact bytes on disk — the
FF D8 that opens every JPEG, the marker segments, and the
entropy-coded scan — scrolling smoothly at any size because it only
reads the window you’re looking at. No upload, no server.
The hex view pairs with the marker SEGMENTS list, the
metadata reader and the quality estimate, so you can jump between the bytes
and what they mean. Detection is by content (FF D8 FF),
never the extension.
It’s one lens on OmniViewer’s JPEG Viewer — EXIF/GPS Stripper & Quality: drop a file and every tab is one click away. OmniViewer opens every file format, entirely in your browser — no upload, no server.
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.