gamut_icc/lib.rs
1//! `gamut-icc` — ICC color profile parsing and serialization.
2//!
3//! An ICC profile is the self-describing color-characterization blob embedded in images (the WebP
4//! `ICCP` chunk, the AVIF/HEIF `colr` box of type `prof`, a JPEG `APP2` segment). Structurally it
5//! is a 128-byte header, a tag table, then the tag element data the table points at — a flat,
6//! offset-indexed binary format that needs neither the TIFF/IFD machinery nor XML, so this crate
7//! depends only on [`gamut_core`].
8//!
9//! Layouts follow the ICC profile specification **ICC.1:2022** (profile version 4.4,
10//! `references/icc`), which is equivalent to ISO 15076-1. Profile **v2** is still by far the most
11//! common version embedded in real images and is supported for reading.
12//!
13//! Placeholder skeleton — implementation pending (see issue #34). The type declarations below
14//! sketch the data model the implementation phases flesh out; no parsing/serialization exists yet.
15#![forbid(unsafe_code)]
16
17pub mod header;
18pub mod profile;
19pub mod reader;
20pub mod tag_types;
21pub mod tags;
22pub mod writer;
23
24pub use header::{ColorSpace, DeviceClass, ProfileHeader, ProfileVersion, RenderingIntent};
25pub use profile::IccProfile;
26pub use reader::IccReader;
27pub use tag_types::TagType;
28pub use tags::{KnownTag, TagEntry, TagSignature};
29pub use writer::IccWriter;