RAW viewer — open CR2, NEF, ARW & DNG without an editor

Drop a camera RAW and see it immediately — no Photoshop, no Lightroom, no plugin. It renders the JPEG preview your camera embedded in the file, right here on the page, without uploading a single byte.

Your file never leaves your device — the preview is rendered in your browser. 0 bytes uploaded.

Drop a RAW photo file hereTap to choose a RAW photo file

Extracts the camera's embedded JPEG preview — not a re-developed RAW. Reads locally; nothing is uploaded.

100% in your browser. 0 bytes uploaded — open DevTools → Network and watch. Your file is read, never sent.

In short

This is a 100% client-side RAW viewer. Drop a .cr2,.nef, .arw, .dng (or CR3 / RAF / RW2 / ORF and friends) and it renders the camera's embedded JPEG preview on the page, along with the container type, preview source and real pixel dimensions. It is a viewer, not a raw developer: it shows what the camera already rendered rather than demosaicing the sensor data — which is what lets it work in an ordinary browser tab with nothing uploaded.

How you can preview a RAW with no editor

A camera RAW carries the unprocessed sensor mosaic — which needs a raw pipeline to turn into a picture — but it also carries a ready-made JPEG preview the camera writes for its rear screen and for fast thumbnails. This viewer reads that embedded JPEG and draws it, so you get an instant, accurate look at the frame without any raw-processing software.

CR2, NEF, ARW and DNG are TIFF/EP containers: chains of image file directories where a tag pair (JPEGInterchangeFormat / JPEGInterchangeFormatLength) records the preview's exact byte offset and length. The engine reads those tags and extracts the complete FFD8…FFD9 JPEG, then the browser decodes it to render it and report its true size. Canon's CR3 and Fujifilm's RAF use different container layouts, so for those the largest embedded JPEG is located by scanning the bytes. Everything — parsing, slicing and decoding — happens on your device.

What you're really looking at — honestly

An accurate preview

The camera's own JPEG, typically at full sensor resolution, showing the frame exactly as the camera rendered it — the same white balance, contrast and sharpening baked in at capture. Perfect for triaging a shoot, confirming a file, or checking a card.

Not a developed RAW

You're not seeing the latitude of the raw data — no recovered highlights, no re-profiled colour. And if a body embedded only a medium-resolution preview (roughly 1600–1920 px on the long edge), that's the size you'll see; the viewer states the real dimensions and flags the medium-res case rather than pretending it's full size.

Why "no upload" is verifiable, not a slogan

RAW files are big and personal, which is exactly why viewing them shouldn't mean handing them to a server. Here the file is read with the browser's file APIs and rendered on your machine; the page makes no request that carries your data, and the RAW engine is pure TypeScript with no server round-trip. Prove it yourself: open DevTools, choose the Network tab, drop a file, and watch nothing leave. It's the same zero-upload principle demonstrated on theno-upload repair page.

If the RAW won't render

A file copied off a failing card or cut short mid-write can end up with preview offsets that point past the end of the data, or a damaged container header. When the viewer can't find a valid embedded JPEG it won't invent one — it tells you what it saw and links you torepair the file first, after which you can come back and view the recovered image.

FAQ

How can a browser open a RAW file at all?

It doesn't decode the sensor data — no browser can do that natively. Instead it reads the JPEG preview that the camera embedded inside the RAW for its own screen and thumbnails, and renders that. That's why a plain browser tab can show you the shot instantly, with no raw engine and nothing installed.

Which RAW formats can I view?

CR2 (Canon), NEF (Nikon), ARW (Sony) and DNG (Adobe / universal) are the most reliable, because their preview location is recorded in TIFF tags. CR3 (newer Canon), RAF (Fujifilm), RW2 (Panasonic), ORF (Olympus/OM), SRW (Samsung) and PEF (Pentax) also render via a byte scan for the largest embedded JPEG. If a file embeds no JPEG, the viewer says so instead of showing a blank frame.

Am I seeing the full-quality image?

You're seeing the camera's embedded preview. On most cameras that's a full-resolution JPEG; some bodies only store a medium-resolution one (around 1600–1920 px on the long edge). The viewer reports the real pixel dimensions of what it rendered and flags when it's only a medium-res preview, so you're never misled about the size.

Why don't the colours match my editor?

Because this is the camera's in-body JPEG rendering — the look on the back of the camera — not a raw developer's interpretation. White balance, tone and sharpening are whatever the camera baked in. A tool like Lightroom or darktable can produce a different (and more flexible) result from the same raw data.

Is my photo uploaded to view it?

No. The RAW is read locally with the browser's file APIs and rendered on your device; no request carries your bytes. Open DevTools, go to the Network tab, drop the file, and confirm nothing is sent.

The viewer can't show my RAW — what now?

If it reports no embedded preview, the file may be truncated or its container header damaged, so the preview offsets lead nowhere. The viewer won't fake an image — it tells you what it found and links a repair route so you can try to rebuild the file first.

Do you want a download too?

This page is view-only by design. If you'd rather save the embedded image as a file, the companion RAW-to-JPG converter extracts the same preview and offers it as a lossless .jpg download.

Related: save a RAW as JPG (converter) · damaged file? repair a JPG ·all repair tools