RAW to JPG — CR2, NEF, ARW & DNG, right in your browser

Drop a camera RAW and get a JPG back in seconds. It pulls out the full-quality JPEG your camera already tucked inside the file — a lossless copy, not a re-developed RAW — without ever uploading a byte.

Your file never leaves your device — conversion runs 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-to-JPG converter. Drop a.cr2, .nef, .arw,.dng (or CR3 / RAF / RW2 / ORF and friends) and it locates the JPEG the camera embedded inside the file, then hands you that as a downloadable .jpg. It is not a raw developer: it never demosaics the sensor data or re-applies white balance. It surfaces what the camera already rendered — which is exactly why it can run instantly in a browser tab with nothing uploaded.

What's actually inside a RAW file

A camera RAW is two things stacked together. The part everyone talks about is the sensor mosaic — the unprocessed light readings behind a colour-filter array, which a raw developer must demosaic and tone-map into a picture. But every mainstream camera also writes a ready-made JPEG preview into the same file, so it can show the shot on the rear screen and so your operating system can draw a thumbnail without a full raw engine. That embedded JPEG is what this tool extracts.

CR2, NEF, ARW and DNG are all built on the TIFF/EP container: a chain of image file directories (IFDs), and one of them records the preview's byte offset and length in dedicated tags (JPEGInterchangeFormat / JPEGInterchangeFormatLength). The engine reads those tags and slices out the completeFFD8…FFD9 JPEG — no guessing. Canon's newer CR3 and Fujifilm's RAF use different container layouts, so for those the largest embedded JPEG is found by scanning the file for JPEG boundaries. Either way, the browser then decodes that JPEG to confirm its real pixel dimensions before offering the download.

What this can and cannot do — honestly

What you get

The camera's own JPEG, usually at full sensor resolution, saved verbatim as a .jpg — no re-compression, so no generational quality loss. The look matches the in-camera render: the same white balance, contrast and sharpening you saw on the back of the camera.

What you don't get

A developed RAW. There's no exposure recovery, no highlight/shadow latitude, no custom profile — that needs a raw pipeline working from the sensor data. And if a body only embedded a medium-resolution preview (roughly 1600–1920 px on the long edge), that smaller image is the honest ceiling here; the tool flags it when it happens.

This matters because plenty of "RAW converters" quietly do the same embedded-preview trick without telling you, then imply you've developed the file. You haven't, and neither have we — the difference is that we say so. If you need the real editorial headroom of the raw data, keep the original and open it in a raw developer.

Why "no upload" is verifiable, not a slogan

RAW files are large and personal, so this is the whole point: the file is read with the browser's own file APIs and processed on your machine. The page makes no request that carries your data, and the RAW engine chunk is pure TypeScript — no server round-trip, no wasm phone-home. Don't take it on faith: open DevTools, select the Network tab, drop a file, and watch that nothing leaves. It's the same zero-upload principle proven on theno-upload repair page.

If the file looks damaged

A RAW pulled off a failing card, copied over a dropped connection, or cut short mid-write can end up with preview offsets that point past the end of the file, or a scrambled container header. When the tool can't locate a valid embedded JPEG it won't fake a result — it tells you what it found and points you to repair the file first, then come back and convert the recovered version.

FAQ

Does this actually develop my RAW file?

No, and it's important to be clear about that. A raw developer (Lightroom, Capture One, LibRaw, darktable) demosaics the sensor mosaic and applies white balance, a tone curve and a colour profile. This tool does none of that. It extracts the JPEG the camera already embedded in the file for its own preview screen, and gives you that. It runs entirely in your browser precisely because it doesn't need a heavyweight raw pipeline.

Which RAW formats work?

The TIFF-family formats are the most reliable: CR2 (Canon), NEF (Nikon), ARW (Sony) and DNG (Adobe / the universal RAW). Their embedded preview is recorded in TIFF tags, so it is located exactly. CR3 (newer Canon), RAF (Fujifilm), RW2 (Panasonic), ORF (Olympus/OM), SRW (Samsung) and PEF (Pentax) also work — for those the largest embedded JPEG is found by scanning the bytes. If a particular file stores no JPEG at all, the tool says so rather than inventing one.

Is the JPG the full resolution of my photo?

Usually, but not always. Most modern cameras embed a full-resolution JPEG, so the output matches your sensor's pixel dimensions. Some bodies only write a medium-resolution preview (often around 1600–1920 px on the long edge). When that happens the tool flags it — the size it shows is the real size of the embedded preview, not a guess.

Is the JPG re-compressed?

No. When the target is JPG, the camera's embedded JPEG is passed through byte-for-byte — a lossless copy, not a re-encode — so there's no generational quality loss. (Converting to PNG on the viewer's sibling tools does re-encode, because PNG is a different container.)

Why do the colours look different from Lightroom?

Because you're seeing the camera's own in-body JPEG rendering — the same look as the picture on the back of the camera — not an editor's interpretation of the raw data. White balance, contrast and sharpening are whatever the camera baked in. If you want full editorial control, you still need a raw developer working from the original file.

Is anything uploaded?

No. The RAW is read with the browser's file APIs and scanned on your machine; not one request carries your bytes. Open DevTools, switch to the Network tab, drop the file, and watch nothing leave.

My RAW won't open anywhere — is it corrupt?

It might be truncated (a card pulled mid-write, an interrupted copy) so the preview offsets point past the end of the file, or the container header may be damaged. When the tool can't find a valid embedded JPEG it tells you honestly and links a repair route so you can try to rebuild the file first.

Related: open a RAW in the browser (viewer) · damaged file? repair a JPG ·all repair tools