Camera RAW converter
Convert Camera RAW images to JPG; choose the transparency matte color.
Convert Camera RAW images to JPG; choose the transparency matte color.
Camera RAW is not one format: each maker's raw capture comes in its own variant, and a header check tells those variants apart from ordinary TIFF images. LibRaw develops the file to pixels, and the JPG and PNG encoders write the output.
| Format | File extensions | FluffyBench reads | FluffyBench writes | Transparency | Animation |
|---|---|---|---|---|---|
| Camera RAW | .cr2, .cr3, .nef, .nrw, .arw, .srf, .sr2, .dng, .raf, .orf, .rw2, .pef, .srw, .erf, .3fr, .iiq, .mrw, .x3f, .kdc, .dcr, .mos, .rwl, .crw | Yes | No | No | No |
Development runs through LibRaw, which is WebAssembly code inside a worker and does not run on the page itself. A browser missing worker or WebAssembly ability gets a plain message. Previews go through the same queue and usually develop the file in full; the conversion reuses those pixels. The embedded thumbnail is read only when the developed image would outgrow the preview cache, at most 128 MB for one file.
White balance comes from the camera's setting, brightness stays automatic, and pixels arrive in 8-bit sRGB; how that space sits beside Display P3, and what changes when an ICC profile is dropped, are compared by the color profile guide. Those choices are fixed in the code, so a developed photo can differ from the camera's own JPEG and from a Lightroom edit.
The queue develops one file at a time, so a long batch proceeds in order. One file has up to 120 seconds to develop before the work is stopped, and the decoder closes after 30 seconds with no work.
Detection reads the first bytes of a file, not the file name, whenever a format has its own signature; the file name decides only when a TIFF header could belong to several variants. Files named .tif or .tiff without a DNGVersion tag stay on the ordinary TIFF path.
| Extension | What the check looks for |
|---|---|
| cr2 | CR at byte 8 of a TIFF header, or a TIFF header plus this extension |
| cr3 | an ftyp box carrying the crx brand |
| nef | a TIFF header plus this extension |
| nrw | a TIFF header plus this extension |
| arw | a TIFF header plus this extension |
| srf | a TIFF header plus this extension |
| sr2 | a TIFF header plus this extension |
| dng | a DNGVersion tag in the first IFD, or a TIFF header plus this extension |
| raf | FUJIFILMCCD-RAW at the start |
| orf | IIRO, IIRS or MMOR at the start, or a TIFF header plus this extension |
| rw2 | IIU at the start, or a TIFF header plus this extension |
| pef | a TIFF header plus this extension |
| srw | a TIFF header plus this extension |
| erf | a TIFF header plus this extension |
| 3fr | a TIFF header plus this extension |
| iiq | a TIFF header plus this extension |
| mrw | a zero byte then MRM at the start |
| x3f | FOVb at the start |
| kdc | a TIFF header plus this extension |
| dcr | a TIFF header plus this extension |
| mos | a TIFF header plus this extension |
| rwl | a TIFF header plus this extension |
| crw | HEAPCCDR at byte 6 |
Every output is 8-bit sRGB with opaque pixels, since RAW carries no transparency. The extra bit depth a RAW file carries and its camera profile are dropped. A file that decodes to anything other than 3-channel 8-bit data cannot be converted, and the page says why.
JPG and PNG are the two destinations, and both start from the same develop; PNG keeps those pixels exactly, while JPG adds lossy compression. A later save on top costs more quality; the re-encoding guide traces generation loss and why a quality number is not a universal measure. If the photo has to fit an upload form's limit, the guide to fitting a photo under a size limit measures one photo three ways, from smaller pixels to lower quality to another format, against a 100 KB and a 50 KB cap.
For anything beyond that one development, keep the RAW: a re-develop can work from its full depth with different settings.