1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! Pure-Rust TIFF 6.0 image decoder + container.
//!
//! Implements the *Aldus TIFF Revision 6.0 (June 1992)* baseline, plus
//! the two universally-deployed Part 2 extensions (LZW with optional
//! horizontal-differencing predictor; Adobe Deflate). Spec-only
//! clean-room: no external library source was consulted at any point.
//!
//! Decode-side coverage:
//!
//! * Byte order: `II` (little-endian) and `MM` (big-endian)
//! * Photometric: WhiteIsZero / BlackIsZero / RGB / Palette
//! * Bit depths: 1, 4, 8, 16
//! * Compression: 1 None / 32773 PackBits / 5 LZW / 8 Deflate (zlib)
//! * Predictor: 1 (none) and 2 (horizontal differencing,
//! per-component for SamplesPerPixel > 1)
//! * Strip-based decode (any number of strips)
//!
//! Out of scope for round 1 (round 2 backlog): BigTIFF, tiles, CCITT
//! G3/G4 fax, JPEG-in-TIFF, YCbCr / CIELab / CMYK, multi-page IFD
//! chain, encoder.
//!
//! ## Standalone vs registry-integrated
//!
//! The crate's default `registry` Cargo feature pulls in `oxideav-core`
//! and exposes the `Decoder` trait surface, the TIFF container
//! demuxer/probe, and the [`registry::register`] entry point. Disable
//! the feature (`default-features = false`) for an oxideav-core-free
//! build that still exposes the standalone [`decode_tiff`] API plus
//! [`TiffImage`] / [`TiffPixelFormat`] / [`TiffPlane`] / [`TiffError`]
//! types — none of which depend on `oxideav-core`.
/// Codec id for TIFF image frames.
pub const CODEC_ID_STR: &str = "tiff";
// Standalone, framework-free API. Available regardless of the
// `registry` feature.
pub use ;
pub use ;
pub use ;
// Framework-integrated API (`oxideav-core`-dependent). Gated behind
// `registry` so image-library callers can build the crate without
// dragging in `oxideav-core`.
pub use ;