mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-12 08:52:32 +00:00
* craft-exr: bounded part listing, flat decoding and writing (feature decode) PhotoCraft's exr-crate wrapper (preview check, per-part and total size limits, file-size plausibility, part ranking, one-part decode) and EffectCraft's streaming channel filter, as one reader that returns a neutral model: part headers with text attributes, and the kept channels in their stored type. * craft-exr: deep data and Cryptomatte samples (feature decode) PhotoCraft's deep OpenEXR reader (NONE, RLE and ZIPS deep scan lines and tiles, every allocation admitted against the byte budget) and its flattening, and its Cryptomatte layer listing and rank decoding, on the decode module. * craft-exr: bounded band-by-band reader for flat scan-line parts PhotoCraft's exr_stream decoder: bounded metadata, the offset table, then one compression block at a time as interleaved f32. Custom chromaticities are reported instead of refused, so the colour policy stays with the caller.
35 lines
1.5 KiB
Rust
35 lines
1.5 KiB
Rust
#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
|
|
//! OpenEXR handling shared by the Craft apps.
|
|
//!
|
|
//! This first part is the naming layer every reader needs once it has a file's channel list and
|
|
//! header attributes, whichever decoder produced them:
|
|
//!
|
|
//! - [`channels`]: OpenEXR layer and channel names (`diffuse.R`, `ViewLayer.Combined.R`), the
|
|
//! channels that make a colour picture, and the channels of a layer to show as red, green, blue
|
|
//! and alpha.
|
|
//! - [`cryptomatte`]: Cryptomatte (specification 1.2) IDs, metadata keys, manifests and rank
|
|
//! channel names.
|
|
//!
|
|
//! Those take names and attribute text and depend on no decoder. With the `decode` feature:
|
|
//!
|
|
//! - [`decode`]: bounded part listing, flat decoding (scan lines and tiles, every compression the
|
|
//! `exr` crate reads) and writing, on top of the `exr` crate.
|
|
//! - [`deep`]: deep scan lines and tiles (NONE, RLE, ZIPS) and their flattening.
|
|
//! - [`stream`]: one flat scan-line part read block by block, for pictures larger than memory.
|
|
//! - [`cryptomatte_samples`]: a file's Cryptomatte layers and their per-pixel (ID, coverage) ranks.
|
|
|
|
pub mod channels;
|
|
pub mod cryptomatte;
|
|
#[cfg(feature = "decode")]
|
|
pub mod cryptomatte_samples;
|
|
#[cfg(feature = "decode")]
|
|
pub mod decode;
|
|
#[cfg(all(test, feature = "decode"))]
|
|
mod decode_tests;
|
|
#[cfg(feature = "decode")]
|
|
pub mod deep;
|
|
#[cfg(all(test, feature = "decode"))]
|
|
mod deep_tests;
|
|
#[cfg(feature = "decode")]
|
|
pub mod stream;
|