From f11a1c539310de29f5df166858ba640010e28b11 Mon Sep 17 00:00:00 2001 From: Dustin Thomson <154049-dustin.thomson@users.noreply.gitlab.com> Date: Thu, 28 May 2026 08:48:12 -0600 Subject: [PATCH] Add PhotometricInterpretation unknown tag support Provides a mechanism to support private or extension photometric interpretations (such as CFA) --- src/decoder/image.rs | 14 ++++++++------ src/tags.rs | 5 ++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/decoder/image.rs b/src/decoder/image.rs index 1b51b51..88b63f0 100644 --- a/src/decoder/image.rs +++ b/src/decoder/image.rs @@ -660,12 +660,14 @@ impl Image { ), )), PhotometricInterpretation::RGBPalette => Ok(ColorType::Palette(self.bits_per_sample)), - PhotometricInterpretation::TransparencyMask => Err(TiffError::UnsupportedError( - TiffUnsupportedError::InterpretationWithBits( - self.photometric_interpretation, - vec![self.bits_per_sample; self.samples as usize], - ), - )), + PhotometricInterpretation::TransparencyMask | PhotometricInterpretation::Unknown(_) => { + Err(TiffError::UnsupportedError( + TiffUnsupportedError::InterpretationWithBits( + self.photometric_interpretation, + vec![self.bits_per_sample; self.samples as usize], + ), + )) + } } } diff --git a/src/tags.rs b/src/tags.rs index 8a3f481..c0eff16 100644 --- a/src/tags.rs +++ b/src/tags.rs @@ -295,7 +295,10 @@ pub enum CompressionMethod(u16) unknown( } tags! { -pub enum PhotometricInterpretation(u16) { +pub enum PhotometricInterpretation(u16) unknown( + /// A private or extension tag + unknown +) { WhiteIsZero = 0, BlackIsZero = 1, RGB = 2,