CR2 to JPG

Convert Canon CR2 raw files to JPG with a real demosaic — not the embedded preview — entirely in your browser. Your raw files never upload anywhere.

Drop a RAW file

RAW decoding powered by LibRaw (LGPL), via the libraw-wasm WebAssembly build.

CR2 to JPG — Free, Fast & Private

CR2 is the raw format Canon DSLRs wrote for the better part of fifteen years — from the mid-2000s EOS bodies through the 5D and 6D lines and the entire Rebel series, until Canon began switching new cameras to CR3 in 2018. That history means CR2 is less "a format photographers use" and more "a format photographers have": external drives full of shoots from cameras that produced some of the most-owned DSLRs ever made. The trouble starts when those files meet a machine without raw software — Windows shows blank thumbnails, a client cannot open the attachment, a web form rejects the upload. This tool converts a CR2 to a universally readable JPG on your own device: drop the file in, the decoder runs in your browser, and the raw file — often 20-30 MB of one-of-a-kind shoot data — never touches a server.

A real demosaic, not the sneaky preview

Here is the dirty secret of quick raw converters: every CR2 carries a small JPEG preview that the camera embedded for its own rear screen, and many tools simply extract that preview, rename it, and call the job done — fast, and quietly a fraction of your sensor's resolution. This tool does the real work. The decoder unpacks the actual sensor mosaic and runs a full demosaic with your camera's recorded white balance, reconstructing every pixel from the raw data — the same fundamental pipeline Canon's own Digital Photo Professional runs, minus the desktop install. It is slower than preview extraction, the interface says so while it works, and the result is your photograph at sensor resolution rather than a screen-sized thumbnail wearing its name.

CR2 yes — CR3 no, and it is better you know now

Canon replaced CR2 with CR3 starting with the EOS M50 in 2018, and everything since — the R-series mirrorless line included — writes CR3. This tool does not accept CR3 files, and says so here rather than letting the intake reject the file mysteriously. If your camera is a 2018-or-later Canon, export a JPEG in-camera or through Canon's software for now. What this page covers is the deeper archive: every CR2-writing body from the 350D to the 5D Mark IV and 6D Mark II. The intake accepts .cr2 alongside the other raw families this converter handles — Nikon's NEF, Sony's ARW, and Adobe's universal DNG — useful when a mixed shoot lands in one folder.

The first run downloads the decoder — once

Decoding raw sensor data in a browser takes a real decoder: this tool uses LibRaw, the open-source library behind much of the raw-processing world, compiled to WebAssembly. The first time you convert a file, about 1.4 MB of decoder downloads from this site's own servers — the interface tells you while it happens — and your browser caches it, so every later conversion starts immediately. That small download is what buys the privacy: the decoder comes to your files instead of your files going to a server. For a wedding shoot, a client portrait session, or any frame you have not published, that direction of travel is the entire point — and you can watch the network tab to confirm nothing image-shaped leaves.

Quality, resolution, and one honest cap

The quality slider drives the JPEG encode, defaulting to 90% — a sensible archive-proof setting; drop it when the destination is an email attachment or a form with a size limit, and pair with the JPEG compressor when you need an exact KB target. One cap is disclosed rather than hidden: browsers limit how large a canvas can be, and a high-megapixel CR2 — 24 MP and up — can exceed it, in which case the exported JPG is scaled to the largest size the browser allows and the notice states both the native and exported dimensions. For screen viewing, sharing and most printing, that is still far more resolution than the embedded preview a shortcut tool would have handed you.

What happens to the metadata

A CR2 carries more than pixels: camera body serial number, lens identity, precise capture timestamps, and — on GPS-equipped bodies or phone-tethered shoots — location. The exported JPG carries none of it. The conversion re-encodes pure pixel data, which strips the metadata block wholesale; the camera settings shown on screen during conversion are read for display only. For a file headed to a marketplace listing, a forum, or a client who does not need your gear list, that is the safe default. If you have existing JPEGs whose metadata needs the same treatment, Remove EXIF does that job without re-encoding — and either way, remember the original CR2 on your disk still holds everything.

How it works

  1. Drop in a CR2 file: Straight from the card or the archive — up to 150 MB. The file is read on your device; nothing uploads. CR3 from 2018+ Canon bodies is not supported, and the page says so up front.
  2. First run: decoder downloads: About 1.4 MB of WebAssembly (LibRaw) fetches once from our servers and is cached. Every later conversion skips straight to decoding.
  3. Full demosaic runs locally: The actual sensor mosaic is unpacked and demosaiced with your camera’s recorded white balance — the honest, slower path, not the embedded preview shortcut.
  4. Set quality, download the JPG: The slider defaults to 90%. The output is a clean, metadata-free JPG at sensor resolution — scaled down only if the file exceeds your browser’s canvas limit, with both sizes stated.

Frequently asked questions

Does this convert the real raw data or just extract the preview?
The real data. Every CR2 contains a small camera-generated JPEG preview, and many quick converters just extract it — at a fraction of sensor resolution. This tool runs a full demosaic on the actual mosaic data with the camera’s recorded white balance. It takes a few seconds longer and the interface says so while it works.
Are CR3 files supported?
No. Canon switched new cameras from CR2 to CR3 in 2018 (starting with the EOS M50), and this converter accepts CR2 only — the intake takes .cr2, .nef, .arw and .dng. For CR3, use an in-camera JPEG export or Canon’s own software. Stating this plainly beats letting the file bounce off the intake unexplained.
Is my CR2 uploaded to a server?
No. The LibRaw decoder downloads to your browser (about 1.4 MB, once, then cached) and all decoding happens on your device. No network request carries image data — verifiable in your browser’s DevTools. For unpublished shoot files, that is the entire argument for doing it this way.
Which Canon cameras produce CR2?
Essentially every Canon DSLR from the mid-2000s until 2018: the Rebel/xxxD line, the xxD series, the 6D and 5D families, and the 1D bodies of that era. If your Canon is newer and mirrorless, it writes CR3, which this tool does not decode.
Will the JPG keep the full resolution?
Yes, up to your browser’s canvas limit. Very large files — roughly 24 MP and beyond — can exceed that cap, in which case the export is scaled to the largest allowed size and the notice states both the native and exported dimensions. Either way you get vastly more than the embedded preview.
Does the exported JPG contain my camera’s serial number or location?
No. The export re-encodes pure pixel data, which drops the CR2’s metadata block — body serial, lens, timestamps, GPS if present. The camera info displayed during conversion is read for display only. Your original CR2 keeps everything, so nothing is lost — just not shared.
What quality setting should I use?
The 90% default is right for keeping or sharing at high fidelity. For email or upload-limit destinations, lower it — or convert at 90% and run the result through the JPEG compressor for an exact KB target. Raw-to-JPG is the resolution decision; compression is best handled as its own step.

RAW decoding powered by LibRaw (LGPL), via the libraw-wasm WebAssembly build.

All Image Tools

Solutions by use case