Expand description
Camera RAW and DNG decoder with zenpixels integration.
Multiple decode backends available:
rawloader(default) — lightweight, Bayer-only, ~200 camerasrawler— broader support: CR3, X-Trans, JXL-compressed DNG, ~300+ camerasdarktable— shells out to darktable-cli for 900+ cameras with full pipeline
Output is controlled by OutputMode:
- Develop (default): display-ready u16 sRGB
- Linear: scene-referred linear f32
- CameraRaw: raw camera f32 values
§Supported formats
- DNG (Adobe Digital Negative, including iPhone ProRAW with
rawler) - CR2 (Canon)
- CR3 (Canon, with
rawler) - NEF/NRW (Nikon)
- ARW/SRF/SR2 (Sony)
- RAF (Fujifilm)
- RW2 (Panasonic/Leica)
- PEF (Pentax)
- ORF (Olympus)
- ERF (Epson)
- 3FR (Hasselblad)
- IIQ (Phase One)
- And many more
§Quick start
use zenraw::{decode, RawDecodeConfig};
use enough::Unstoppable;
let data: &[u8] = &[]; // your RAW file bytes
let output = decode(data, &RawDecodeConfig::default(), &Unstoppable)?;
println!("{}x{} {}", output.info.width, output.info.height, output.info.model);§Processing pipeline
- Parse camera RAW file
- Normalize sensor values using black/white levels
- Demosaic Bayer CFA pattern → RGB (Malvar-He-Cutler by default)
- Apply white balance coefficients
- Apply camera→XYZ→sRGB color matrix
- Optionally apply sRGB gamma curve
- Optionally apply crop from camera metadata
Re-exports§
pub use classify::FileFormat;pub use classify::classify;pub use decode::OutputMode;pub use decode::RawDecodeConfig;pub use decode::RawDecodeOutput;pub use decode::RawInfo;pub use decode::SensorLayout;pub use demosaic::DemosaicMethod;pub use dng_render::OutputPrimaries;
Modules§
- classify
- File format classification for RAW, DNG, and Apple container formats.
- color
- Color processing pipeline for camera RAW data.
- decode
- RAW/DNG decoding to zenpixels buffers.
- demosaic
- Bayer pattern demosaicing algorithms.
- dng_
render - DNG rendering pipeline following Adobe DNG SDK specification.
Enums§
- RawError
- Errors from RAW/DNG decode operations.
Functions§
- decode
- Decode a RAW/DNG file to a pixel buffer.
- is_
raw_ file - Detect whether a byte slice looks like a supported RAW/DNG file.
- probe
- Probe a RAW/DNG file for metadata without decoding pixels.
Type Aliases§
- Result
- Result type alias for zenraw operations.