From 4ff374990e5561e37b989e09ed55a59fdbf93ecd Mon Sep 17 00:00:00 2001 From: Lilith River Date: Mon, 9 Mar 2026 21:05:09 -0600 Subject: [PATCH] feat: accept sub-byte bit depths for all color types Previously, sub-byte bit depths (1-7 bits per sample) were only accepted for Gray and Multiband color types. This extends the validation to accept all color types (RGB, RGBA, CMYK, CMYKA, YCbCr) at sub-byte depths. The data format is unchanged: sub-byte samples remain packed MSB-first in the output buffer, exactly as for grayscale. Predictors are still rejected for sub-byte data. Tested via libtiffpic flower-rgb-contig-02/04 and flower-rgb-planar-02/04. --- src/decoder/image.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/decoder/image.rs b/src/decoder/image.rs index 479f07e..70293ac 100644 --- a/src/decoder/image.rs +++ b/src/decoder/image.rs @@ -1030,7 +1030,12 @@ impl Image { bit_depth: n, num_samples: _, } if n == 8 || n == 16 || n == 32 || n == 64 => {} - ColorType::Gray(n) + ColorType::RGB(n) + | ColorType::RGBA(n) + | ColorType::CMYK(n) + | ColorType::CMYKA(n) + | ColorType::YCbCr(n) + | ColorType::Gray(n) | ColorType::Palette(n) | ColorType::Multiband { bit_depth: n,