From 95c49f50ecf2903f0f34cc77e035d878eed00a99 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Fri, 25 Oct 2024 23:49:04 +0100 Subject: [PATCH 1/6] Add PCX decoder support --- Cargo.toml | 4 +- README.md | 1 + src/codecs/pcx.rs | 157 ++++++++++++++++++ src/image.rs | 15 +- src/image_reader/free_functions.rs | 3 +- src/image_reader/image_reader_type.rs | 2 + src/lib.rs | 3 + tests/images/pcx/images/cga_bw.pcx | Bin 0 -> 4702 bytes tests/images/pcx/images/cga_fsd.pcx | Bin 0 -> 13615 bytes tests/images/pcx/images/cga_rgbi.pcx | Bin 0 -> 8133 bytes tests/images/pcx/images/cga_tst1.pcx | Bin 0 -> 7158 bytes tests/images/pcx/images/gmarbles.pcx | Bin 0 -> 16303 bytes tests/images/pcx/images/marbles.pcx | Bin 0 -> 47061 bytes .../pcx/images/cga_bw.pcx.620c687c.png | Bin 0 -> 14593 bytes .../pcx/images/cga_fsd.pcx.33a4fc15.png | Bin 0 -> 35098 bytes .../pcx/images/cga_rgbi.pcx.a1de5299.png | Bin 0 -> 29196 bytes .../pcx/images/cga_tst1.pcx.2a36d106.png | Bin 0 -> 12690 bytes .../pcx/images/gmarbles.pcx.1359bee5.png | Bin 0 -> 32950 bytes .../pcx/images/marbles.pcx.96101fd7.png | Bin 0 -> 34618 bytes tests/reference_images.rs | 2 +- tests/truncate_images.rs | 7 +- 21 files changed, 189 insertions(+), 5 deletions(-) create mode 100644 src/codecs/pcx.rs create mode 100644 tests/images/pcx/images/cga_bw.pcx create mode 100644 tests/images/pcx/images/cga_fsd.pcx create mode 100644 tests/images/pcx/images/cga_rgbi.pcx create mode 100644 tests/images/pcx/images/cga_tst1.pcx create mode 100644 tests/images/pcx/images/gmarbles.pcx create mode 100644 tests/images/pcx/images/marbles.pcx create mode 100644 tests/reference/pcx/images/cga_bw.pcx.620c687c.png create mode 100644 tests/reference/pcx/images/cga_fsd.pcx.33a4fc15.png create mode 100644 tests/reference/pcx/images/cga_rgbi.pcx.a1de5299.png create mode 100644 tests/reference/pcx/images/cga_tst1.pcx.2a36d106.png create mode 100644 tests/reference/pcx/images/gmarbles.pcx.1359bee5.png create mode 100644 tests/reference/pcx/images/marbles.pcx.96101fd7.png diff --git a/Cargo.toml b/Cargo.toml index 4a6108a26c..6531e9b5b5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,6 +47,7 @@ exr = { version = "1.5.0", optional = true } gif = { version = "0.13", optional = true } image-webp = { version = "0.2.0", optional = true } mp4parse = { version = "0.17.0", optional = true } +pcx = { version = "0.2.3", optional = true } png = { version = "0.17.6", optional = true } qoi = { version = "0.4", optional = true } ravif = { version = "0.11.11", default-features = false, optional = true } @@ -67,7 +68,7 @@ criterion = "0.5.0" default = ["rayon", "default-formats"] # Format features -default-formats = ["avif", "bmp", "dds", "exr", "ff", "gif", "hdr", "ico", "jpeg", "png", "pnm", "qoi", "tga", "tiff", "webp"] +default-formats = ["avif", "bmp", "dds", "exr", "ff", "gif", "hdr", "ico", "jpeg", "pcx", "png", "pnm", "qoi", "tga", "tiff", "webp"] avif = ["dep:ravif", "dep:rgb"] bmp = [] dds = [] @@ -77,6 +78,7 @@ gif = ["dep:gif", "dep:color_quant"] hdr = [] ico = ["bmp", "png"] jpeg = ["dep:zune-core", "dep:zune-jpeg"] +pcx = ["dep:pcx"] png = ["dep:png"] pnm = [] qoi = ["dep:qoi"] diff --git a/README.md b/README.md index e3eb168058..4fff85b666 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ image format encoders and decoders. | ICO | Yes | Yes | | JPEG | Yes | Yes | | EXR | Yes | Yes | +| PCX | Yes | --- | | PNG | Yes | Yes | | PNM | Yes | Yes | | QOI | Yes | Yes | diff --git a/src/codecs/pcx.rs b/src/codecs/pcx.rs new file mode 100644 index 0000000000..b7c9a507b7 --- /dev/null +++ b/src/codecs/pcx.rs @@ -0,0 +1,157 @@ +//! Decoding and Encoding of PCX Images +//! +//! PCX (PiCture eXchange) Format is an obsolete image format from the 1980s. +//! +//! # Related Links +//! * - The PCX format on Wikipedia + +extern crate pcx; + +use std::io::{self, BufRead, Cursor, Read, Seek}; +use std::iter; +use std::marker::PhantomData; +use std::mem; + +use crate::color::{ColorType, ExtendedColorType}; +use crate::error::{ImageError, ImageResult}; +use crate::image::ImageDecoder; + +/// Decoder for PCX images. +pub struct PCXDecoder +where + R: BufRead + Seek, +{ + dimensions: (u32, u32), + inner: pcx::Reader, +} + +impl PCXDecoder +where + R: BufRead + Seek, +{ + /// Create a new `PCXDecoder`. + pub fn new(r: R) -> Result, ImageError> { + let inner = pcx::Reader::new(r).map_err(ImageError::from_pcx_decode)?; + let dimensions = (u32::from(inner.width()), u32::from(inner.height())); + + Ok(PCXDecoder { dimensions, inner }) + } +} + +impl ImageError { + fn from_pcx_decode(err: io::Error) -> ImageError { + ImageError::IoError(err) + } +} + +/// Wrapper struct around a `Cursor>` +#[allow(dead_code)] +#[deprecated] +pub struct PCXReader(Cursor>, PhantomData); +#[allow(deprecated)] +impl Read for PCXReader { + fn read(&mut self, buf: &mut [u8]) -> io::Result { + self.0.read(buf) + } + + fn read_to_end(&mut self, buf: &mut Vec) -> io::Result { + if self.0.position() == 0 && buf.is_empty() { + mem::swap(buf, self.0.get_mut()); + Ok(buf.len()) + } else { + self.0.read_to_end(buf) + } + } +} + +impl ImageDecoder for PCXDecoder { + fn dimensions(&self) -> (u32, u32) { + self.dimensions + } + + fn color_type(&self) -> ColorType { + ColorType::Rgb8 + } + + fn original_color_type(&self) -> ExtendedColorType { + if self.inner.is_paletted() { + return ExtendedColorType::Unknown(self.inner.header.bit_depth); + } + + match ( + self.inner.header.number_of_color_planes, + self.inner.header.bit_depth, + ) { + (1, 1) => ExtendedColorType::L1, + (1, 2) => ExtendedColorType::L2, + (1, 4) => ExtendedColorType::L4, + (1, 8) => ExtendedColorType::L8, + (3, 1) => ExtendedColorType::Rgb1, + (3, 2) => ExtendedColorType::Rgb2, + (3, 4) => ExtendedColorType::Rgb4, + (3, 8) => ExtendedColorType::Rgb8, + (4, 1) => ExtendedColorType::Rgba1, + (4, 2) => ExtendedColorType::Rgba2, + (4, 4) => ExtendedColorType::Rgba4, + (4, 8) => ExtendedColorType::Rgba8, + (_, _) => unreachable!(), + } + } + + fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()> { + assert_eq!(u64::try_from(buf.len()), Ok(self.total_bytes())); + + let height = self.inner.height() as usize; + let width = self.inner.width() as usize; + + match self.inner.palette_length() { + // No palette to interpret, so we can just write directly to buf + None => { + for i in 0..height { + let offset = i * 3 * width; + self.inner + .next_row_rgb(&mut buf[offset..offset + (width * 3)]) + .map_err(ImageError::from_pcx_decode)?; + } + } + + // We need to convert from the palette colours to RGB values inline, + // but the pcx crate can't give us the palette first. Work around it + // by taking the paletted image into a buffer, then converting it to + // RGB8 after. + Some(palette_length) => { + let mut pal_buf: Vec = iter::repeat(0).take(height * width).collect(); + + for i in 0..height { + let offset = i * width; + self.inner + .next_row_paletted(&mut pal_buf[offset..offset + width]) + .map_err(ImageError::from_pcx_decode)?; + } + + let mut palette: Vec = + iter::repeat(0).take(3 * palette_length as usize).collect(); + self.inner + .read_palette(&mut palette[..]) + .map_err(ImageError::from_pcx_decode)?; + + for i in 0..height { + for j in 0..width { + let pixel = pal_buf[i * width + j] as usize; + let offset = i * width * 3 + j * 3; + + buf[offset] = palette[pixel * 3]; + buf[offset + 1] = palette[pixel * 3 + 1]; + buf[offset + 2] = palette[pixel * 3 + 2]; + } + } + } + } + + Ok(()) + } + + fn read_image_boxed(self: Box, buf: &mut [u8]) -> ImageResult<()> { + (*self).read_image(buf) + } +} diff --git a/src/image.rs b/src/image.rs index 131e95707c..81aebbd083 100644 --- a/src/image.rs +++ b/src/image.rs @@ -66,6 +66,9 @@ pub enum ImageFormat { /// An Image in QOI Format Qoi, + + /// An Image in PCX Format + Pcx, } impl ImageFormat { @@ -104,6 +107,7 @@ impl ImageFormat { "pbm" | "pam" | "ppm" | "pgm" => ImageFormat::Pnm, "ff" => ImageFormat::Farbfeld, "qoi" => ImageFormat::Qoi, + "pcx" => ImageFormat::Pcx, _ => return None, }) } @@ -179,6 +183,7 @@ impl ImageFormat { // Qoi's MIME type is being worked on. // See: https://github.com/phoboslab/qoi/issues/167 "image/x-qoi" => Some(ImageFormat::Qoi), + "image/vnd.zbrush.pcx" | "image/x-pcx" => Some(ImageFormat::Pcx), _ => None, } } @@ -226,6 +231,7 @@ impl ImageFormat { ImageFormat::Qoi => "image/x-qoi", // farbfeld's MIME type taken from https://www.wikidata.org/wiki/Q28206109 ImageFormat::Farbfeld => "application/octet-stream", + ImageFormat::Pcx => "image/vnd.zbrush.pcx", } } @@ -250,6 +256,7 @@ impl ImageFormat { ImageFormat::Farbfeld => true, ImageFormat::Avif => true, ImageFormat::Qoi => true, + ImageFormat::Pcx => true, } } @@ -274,6 +281,7 @@ impl ImageFormat { ImageFormat::OpenExr => true, ImageFormat::Dds => false, ImageFormat::Qoi => true, + ImageFormat::Pcx => false, } } @@ -305,6 +313,7 @@ impl ImageFormat { // According to: https://aomediacodec.github.io/av1-avif/#mime-registration ImageFormat::Avif => &["avif"], ImageFormat::Qoi => &["qoi"], + ImageFormat::Pcx => &["pcx"], } } @@ -327,6 +336,7 @@ impl ImageFormat { ImageFormat::Farbfeld => cfg!(feature = "ff"), ImageFormat::Avif => cfg!(feature = "avif"), ImageFormat::Qoi => cfg!(feature = "qoi"), + ImageFormat::Pcx => cfg!(feature = "pcx"), ImageFormat::Dds => false, } } @@ -350,6 +360,7 @@ impl ImageFormat { ImageFormat::OpenExr => cfg!(feature = "exr"), ImageFormat::Qoi => cfg!(feature = "qoi"), ImageFormat::Hdr => cfg!(feature = "hdr"), + ImageFormat::Pcx => false, ImageFormat::Dds => false, } } @@ -372,6 +383,7 @@ impl ImageFormat { ImageFormat::Qoi, ImageFormat::Dds, ImageFormat::Hdr, + ImageFormat::Pcx, ] .iter() .copied() @@ -1647,6 +1659,7 @@ mod tests { assert_eq!(from_path("./a.Ppm").unwrap(), ImageFormat::Pnm); assert_eq!(from_path("./a.pgm").unwrap(), ImageFormat::Pnm); assert_eq!(from_path("./a.AViF").unwrap(), ImageFormat::Avif); + assert_eq!(from_path("./a.PCX").unwrap(), ImageFormat::Pcx); assert!(from_path("./a.txt").is_err()); assert!(from_path("./a").is_err()); } @@ -1802,7 +1815,7 @@ mod tests { fn image_formats_are_recognized() { use ImageFormat::*; const ALL_FORMATS: &[ImageFormat] = &[ - Avif, Png, Jpeg, Gif, WebP, Pnm, Tiff, Tga, Dds, Bmp, Ico, Hdr, Farbfeld, OpenExr, + Avif, Png, Jpeg, Gif, WebP, Pnm, Tiff, Tga, Dds, Bmp, Ico, Hdr, Farbfeld, OpenExr, Pcx, ]; for &format in ALL_FORMATS { let mut file = Path::new("file.nothing").to_owned(); diff --git a/src/image_reader/free_functions.rs b/src/image_reader/free_functions.rs index 7a9bb34400..bf4a3d2341 100644 --- a/src/image_reader/free_functions.rs +++ b/src/image_reader/free_functions.rs @@ -124,7 +124,7 @@ pub(crate) fn write_buffer_impl( } } -static MAGIC_BYTES: [(&[u8], ImageFormat); 23] = [ +static MAGIC_BYTES: [(&[u8], ImageFormat); 24] = [ (b"\x89PNG\r\n\x1a\n", ImageFormat::Png), (&[0xff, 0xd8, 0xff], ImageFormat::Jpeg), (b"GIF89a", ImageFormat::Gif), @@ -148,6 +148,7 @@ static MAGIC_BYTES: [(&[u8], ImageFormat); 23] = [ (b"\0\0\0\x1cftypavif", ImageFormat::Avif), (&[0x76, 0x2f, 0x31, 0x01], ImageFormat::OpenExr), // = &exr::meta::magic_number::BYTES (b"qoif", ImageFormat::Qoi), + (&[0x0A], ImageFormat::Pcx), ]; /// Guess image format from memory block diff --git a/src/image_reader/image_reader_type.rs b/src/image_reader/image_reader_type.rs index 479316f191..364f389588 100644 --- a/src/image_reader/image_reader_type.rs +++ b/src/image_reader/image_reader_type.rs @@ -177,6 +177,8 @@ impl<'a, R: 'a + BufRead + Seek> ImageReader { ImageFormat::Farbfeld => Box::new(farbfeld::FarbfeldDecoder::new(reader)?), #[cfg(feature = "qoi")] ImageFormat::Qoi => Box::new(qoi::QoiDecoder::new(reader)?), + #[cfg(feature = "pcx")] + ImageFormat::Pcx => Box::new(pcx::PCXDecoder::new(reader)?), format => { return Err(ImageError::Unsupported( ImageFormatHint::Exact(format).into(), diff --git a/src/lib.rs b/src/lib.rs index 32b25fb924..af7296af8b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -214,6 +214,7 @@ pub mod flat; /// | ICO | Yes | Yes | /// | JPEG | Yes | Yes | /// | EXR | Yes | Yes | +/// | PCX | Yes | --- | /// | PNG | Yes | Yes | /// | PNM | Yes | Yes | /// | QOI | Yes | Yes | @@ -263,6 +264,8 @@ pub mod codecs { pub mod jpeg; #[cfg(feature = "exr")] pub mod openexr; + #[cfg(feature = "pcx")] + pub mod pcx; #[cfg(feature = "png")] pub mod png; #[cfg(feature = "pnm")] diff --git a/tests/images/pcx/images/cga_bw.pcx b/tests/images/pcx/images/cga_bw.pcx new file mode 100644 index 0000000000000000000000000000000000000000..d135810db0cdd11ad67f2b1715950eccffbcf449 GIT binary patch literal 4702 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�gZ-waj=Ue(d;Ty31tvwpG)+0x%uYt-o4|*gnt? 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 AVgLXD literal 0 HcmV?d00001 diff --git a/tests/images/pcx/images/cga_rgbi.pcx b/tests/images/pcx/images/cga_rgbi.pcx new file mode 100644 index 0000000000000000000000000000000000000000..e341f80450a6802f0da30cb10d1c9db9530e01d6 GIT binary patch literal 8133 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 literal 0 HcmV?d00001 diff --git a/tests/images/pcx/images/gmarbles.pcx b/tests/images/pcx/images/gmarbles.pcx new file mode 100644 index 0000000000000000000000000000000000000000..e9ad59f201cd3d8788b87fb95c0eba6d11d10b32 GIT binary patch literal 16303 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 literal 0 HcmV?d00001 diff --git a/tests/images/pcx/images/marbles.pcx b/tests/images/pcx/images/marbles.pcx new file mode 100644 index 0000000000000000000000000000000000000000..24a4724864a8f64b1e862b2007a9f542b28a813d GIT binary patch literal 47061 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⪻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 literal 0 HcmV?d00001 diff --git a/tests/reference/pcx/images/cga_bw.pcx.620c687c.png b/tests/reference/pcx/images/cga_bw.pcx.620c687c.png new file mode 100644 index 0000000000000000000000000000000000000000..ed2cbeaf60649177451fb800aaaf1654bfd52509 GIT binary patch literal 14593 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 bZdq56+422X{vH3?=<%*tyZpq`nmzvmZ*5dd literal 0 HcmV?d00001 diff --git a/tests/reference/pcx/images/cga_fsd.pcx.33a4fc15.png b/tests/reference/pcx/images/cga_fsd.pcx.33a4fc15.png new file mode 100644 index 0000000000000000000000000000000000000000..74d796197a06782163d95184498c758635b4beeb GIT binary patch literal 35098 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 literal 0 HcmV?d00001 diff --git a/tests/reference/pcx/images/cga_rgbi.pcx.a1de5299.png b/tests/reference/pcx/images/cga_rgbi.pcx.a1de5299.png new file mode 100644 index 0000000000000000000000000000000000000000..6e6a19b8de85582be958357c207c9c0d662fed3c GIT binary patch literal 29196 zcmd5_4RBo5b(U>hDY%JnYU2qLEdB~bo}if~6pR%X8-xQi{wY>81!FOj07+?Mj4-kc z<`Dx0M2OO43=P;)3~epsv6KmIjbp=Nf+2yzLcpO3Kdaag8$__AEUvZo>fN62JNLe~ ztN)*s#7u@fzjycEbI(2JJKs6?zNh<_Em{2O<4-z1FE8)Ymwn}uzst*;a**ONgJ&N|vN*^hc zkjHs9`RN*eNASGKT))Eqi_I6TJwET%hDgkOYTJ@62Y#AN#FA;bS^F|>dYh$>HNQb0 zb+@*^dG_ibK`X@1bgWns>fDrC`g@GvxM9$N!lxL7*n{Zew}@`aZTr zZXVlWhc3*+$Tes15A014(}>6X_~Nhtc=k7^TnRDlW5I>XbHLgbKy0P23VpdOZfeL*@~Y z!LTSC6&Jn?Tnat!ic5d%?t}_AW8i6+5~fLIdeRkjh~m8MP-M|Z(#ty?BGXD3;Hsa<&1w9lHk%8Z%X6Z{rr~N% zyPE>mb{FQc=URwgBTv=ZG5Ay~GUTM;oU=gI14_fdn}aFZX8vuMsfi#i)%WTjk;%7eIsyj)Y-LX7r09p)DM0FUc1okg(JIp~?qldEs058zP|90}^9 zwMTyrjU1Wp`M6s{kZ1vN*1r+_8zvVsw-m^PslNvJFO|}KbZM0=GT|5Mwm|$}qL1l$ z93!~$e&7_6S}Gm`Tdt5O0rwKyq%vceUix8i>$LSZMMiUms7GD0^6r<)E8c}haEsV% z&XgVie){vmDiPk_zC2Y#=R925hE936dA+X@iLz&e9B+rnrXi^TAxWQK;k*(+qV8F4 zwlwYuU?JH6gi=LFyz|a=(Qg&hScR}zcWD~|4!)@-eZ)?W(WG=6lme%yipo_N;8_({ z=E53OLG0ER)GDJvK9=0fgz3@O=`aohh)nFgi@&H0Bn>0t5x|NX@VV$Ei4J*_(!T6u z$p`Y$ly|jPUfOvYoQy(2;;8^O_0?~olNqpr`Zt2-3^>uZ@o&O=O3_9d(PdS{208AC$Cuo^8>Il$T5~@0&57}{s#6Z z&9geDHD$&dKJ9@k(BtTfB82O-{{Rz<0%F3!ASw~6Ju-c7^jG3yyD+&LjXV&Uphjp_ zHABT>JESIF1H47xS?wPTgp=I`X0nG14TMg_10&{2$o!yay-tn81b?i6Au!|=1WMc*pHF*z;el4018Wn+FL^M_LK4>HXCihe@q>O%vfh-d2HGKm-%-pcNW~K`s0WS>*H=&pw%3#1`DJ1Mcx-URTSSAb`xJ(P84utCFA^{%#lmXDvJtm%uuu zylfCEwL97d4~1W?gEiP+9b8VjQwn|MSxN&+XIC2j7@!R)8-f!Sf4;0OldFfV6>+U( zf&1hTSYh`odU#&uU^QgAfv!^3%ws--As8K*#DPRkm-#Ve5REcxQ5U!Y7y%j7H)kLO zVl)iG6rlt$Hb@1XwCTl<{iy?Okq!f?y3a$qFn~bYHatr!|1K9hW6>8x074Df{Vpt1 z$SPC|4DQiiOG9bn1V@iBJn;oZOgPFh(N{fe4_aFF4Vg9xMpwfFt=^NsOs4tFvXr^U zNo$!?mO*}H;`<+XU*?Pvn5#A1^HS0-W~v2b*FPCSgdpMVlx`i#gkI{I|6nrB_immKsfa|O8-mvqE5cn`=JvfRY*EeHIqvx6%pkg7hWEcgyk6`gwMN7{MP&}hAW*Ag0 zUBKa@h|21pEM4D9la{q$AR2V&`wUJ7x$8a+HM2Eaq~3_&VXW2&VFQDf2q8b4N)ZhR zNAnSNlL(yY^iD{FX`_u2CAA>!D_`2vDD^^`;pYT_NkdzAfJztwD5!rPd@^g)3|>%ZqiUT+d7!C+wK zOOP=v1~!=)jp<74Z|EXb!g{&YVZzN6nvc>(1`E=3Go#o%8TteF9ooHs+J{M0ss!Du zJM}cC<8Uszt`zRfNyVm6W!gzTkicEG)6>Ifhd|$7Glmozj`uW$015;-Q?I;> zp~>1((3rxydIJY^0hD=1;3BlSxln=Qjmq>+-v}cCJZOMonN9aluuiHL4Omy<*W~To zFiAfeWJO#FtMPKidh!>+2Pe=)%| ztg-%UCnCJ8l6!N%7+%<$-U-6p7{4#8Aa$3G&Anga)#cVV%Ah8V=OnX!%w`@VsnoerY3;izlurg zW*y3Py3uZ`oZ$xXE5;;Eqtn}HNMAQoSNJe;?F&e$SLQMFia?n3UKNN`WNP>Rs<@(u znG894I83bER4q?c!%9r7A2H5 z$(Gq+oMm}#f_5zGjAP4z*|rpML=HXGps6dCmm$r7Y3M=$))3FMYRIV9?~WFu2}=>H zeiHl`)n!{`+z@nLLbxGZGBRqt^4b7>^^^k%KZCeAXN7-|i0bs0;O4IK2L(Utk-?rG z;RkV8Y>j~ikwTq)5oDsFao{kj@WeuriFi=EbvrvcmaJHx*qD!bA>ffkLjd-ez5-6A zxud89_(2FJeXY%x59ovG-6yO(94=ZGI($m|Lf_ZO9!VHl=<|>WAgOHsJO&&2Cy%+1 zMbo_05s|lIkr*DM`=zHE>VxG@^-z{%9L%ixlC+2JVHsK~L=GB+Wl}r(jEJatewkG3 zgXgMv`in1YW-nUVK$iwzwT0CC#eTDjngLISQ}3bE&?rzuV5$VO;?WM&rBGJU!n9@H zVUW$BYxXn~Y|G`nc?>Rn^4>kDQ9`X6-f`vy1#p_V#z-&^ni@uCTxC_7WJJxktgMsw z>0|1a2ne(RvjGcAnbG{@ z9*z9r-NRpqcNDIdN4+{%8TOeC$B~0%N)?D_+mu&)8TsA@E9D?#4E{(A&77Nfk6V*P zi#vJp%PK-fy0c~ek^g&Eq`a;5##f*Ia;LP!Mpvk;vzw0^9C(wT9DSr}wK;V3p^hW@ zPw#%F?O4ykj^@>=JG|F+e|YsX@uH7M@<_T8_d>T_-idoXqLQplAVW9CTE5Lo%blLZ zTl_A_S+w@(i_!PrdE0yQgCZjh3U3$XK1Uk^$%EJbwEjQ(G83tF;K#Q0CE4vWV ze|Pl$)(B3wQG30m8dB^58!&)3nHylHf^xag^8l-3{nq5q)RS|$pG&YtmR8Bq*yA0h zKR?Mt!?s7)|xs|6vU?I~gs}6k>Y5%wmZf_dji1=`d$CsFHxM7 z^2JF(1bU&3ACo;FB6J@p9l0G?H4Ne24jda6b@Ei`nCxKemUN7mh*eVk3b3FZG&az-WggFXT9>`L&9y#Cdj(3cS zObig@hGZuvm~AJ>VLM4ehDA3f06AH`F>M*14;0XFHY{r$#KtW^%rZBE1%p?Og13!U z)fpTSOipHXz!YpW1(OZ7y#s&3+Xdj&N^A(QS!N3=or6dF%vD2LXolKy%?3~OJ5K4Y z>l}(>Pk_;94zWhIwIzsYzCA1u8S84yG7C10k#7!=B* z(`3!qKx)w7`wFCpC+qusU#vZwE^Q#54XUQQ*6u-tFpLFeC z8!w(XfG=b*_4~|%0{`6$$1Pe^;N5SGW`n)nJ`N@g? z(o?&ukLA2VIJR&TR4LOX@?O})aDe`jo`knG*NMpR_7l<#8-ugc+l2y6`6OkINUamz zCWtjT4kJr7U5csord-Mehf&eY?cT@W2@(o@lCjBqfSMT>`ln-O=99#u>&=!4Nn!?~ z8|t>GHiVg97Te7|F9=rUp4P~718t#YM(2L_*v6?rDsJB%M#*{tvwb_(1lC^eF?XF{ z4@@L+a^h@kv<|qXIZo=%+%?4zpXX6C9Aq0sMSNIfYamDHkMkv?uW1f7&Rc^zcB#47 z&fC3l#_s@3pG?R?K|NLZ2Ne1z-We=GL+DCyyO3{r#P}T(R2s&qHjj-yOq=iO%Gibe z!O2_#@QGCAhuCbJz=S?59xx-~ZiJqTK#?B$f$Pc^mJihE`%iGRpna_=u=E3PpIe@W zI5_Mn^z_$tjnuDs&;oi2lWssJa~gMC9y8pne5cMGdY4u2jU;e zeOWmwG&eBIs z$7gX6gdmW4A7x`M@gnP0qHe1Js92ievW>GfbR?PwFI@@g5aZUcuh){t)**Tz3v$57cfKv^+X0q&;s1s?r#S+*|!^V;WtzHIlXxBmzuQ&@(M$H zPBA9?9giXRai4Rsr{3HS*b%yFrOGmm30C0q<)&-$RU<+)rah@)*q6)9vqP%0-xqCi z^eZWvpU?N!1;gcAvSD_Vh)&(4ABF<`8vI1D{g_kT2*EA4TL6LW~L27g58?J zsr$iY2Lgdv=L2J8RpdavMv!sdtr);RZ8TqbxahmB2HV1d`g2Ep=my`61;^|1UeA%e z3?TLZ0C9?ZHF;s1`A@qVx!wC<4LS1rkxA6|jkVD!Mhr~8+B~T#7t;GStHJBQvmi#S$Vgt=eSSQ)+A!)RFF;_Eg5(AYzx3O%|~O4I{6Wb zoG#t4sw`*wEr9CWZ$@PK1gIbC%jM?&V58N;U!a)y31_5>X?~Oo`DYF)&X(~63BcDa z9?6%bb(1JnVn3Brp)b%Wc8ucWRexuGh83pvnJ-w@kR!x$X;G2=%M6mUmKuC$p3Llu zndt`mT^ySS%IL!qbgW9LHxF3D8q;YG`llv*Rr|e}!P(6YWPK9_NP|$pm?@J;&Mz4Z zQmv9j(ht1oJNBr%oMk_#l`4_%Y+)ud+>JQ?B+w-9Z=0Wi{%O$b5Ov)ED@ogx;zz;<-c-5V*VQWg3ReBq$~0F zIKt1_4SUnOKOY-}gYZaz7+J^SP7h<)nn#FjIUE>>i0|{vEbu!(uiV~2F5?QfVDP>6 zSu6ad_y$+b2Z_l?0b`5WjQ!fZ`=IB@nXLOmYx3ut%)w3?(6GgRyO45~AIOOv}r=`+euW?tTf* z)^61l(|P^gz2~0uo$q|-y!QF~@11e(ITxSfa=FgE>&|IEcezI0hR+|2&BDJIJ=S8n zT-QHv*R-D&FCI0pGkg7&53GIv8@1@fiywTrx#sSNx6SWuv;Q~mg>`Fx*0S#JZkTi; z>2H7HnN6#vJb9qyM9qPc(xHOs(JfoIeHZ!lzM=ZWq@I<1MXSoKOLAi?d!nN!ch&Ze zKH}})UA?Z?(|y$2-PWn5gzLry%T7jC?@JuScir1_c2=*O?_SntUXvSp#h+~W9WTra z%$+hWJnCSykQeL5h3neNyQp)59mfstiZKVHFe|da?Vl4+mxhz>{y3N6GcJG9IO;7O z>Yfo@8Z;_y5+DY_*CQE$@n*SS-G{aK7lo`FYeo8 z-`73h?Vb~e_2Ixd;W+`Lr@+`g$m0svEeN`DV>>4D)+t@JQ^xJ2M_s|9{rZuPX8$N}*9`;ltjwA* zT8OP({vF37&mW1*56tb2zEYnk@OCAB*J&*4E86c-vx7yw9(Alfu>{`Wc8Nu~_$DuC zhI^wuwo74^1z(3QSfdu;L|7*BInSsT<1aNyU&6{QwGtQW?uoH2sTlsIy774gvHR)9xrd@jZ&yxhPMH3KDf6*~@xy%e9FNk-SV2 zq=T~t;+5fKseG;s6H9RJOlJV$|Ii<*t?PJF31;cglnsp4?Da%Mci00589kodRdT{$ zM{|9`9Ec-wwTOyf4oR^fX#OcT)+38ZHnkyoL{}?7K+gottrPY4*zkslvBG{BCJC6A zH83K7OG?X6h9<1py6v6g#x?n+h0g{ zQRgC?wpt-?mpZ4|ItjOwsKCUSk&~}}hP2y)M626WZe4&&=jV6ZIe~mA#!~BpAte2Ts>IqX zNjX70+^r45GHrrFI$~V|Kgu?R%zMYOhLEQVo9Dm^&;hcW%mn&_5m+7zNuqRX`0KEa7*lyOW-G#u^}(@fBi+|(}A zj!XwAolC@g*=u6e!WXlz44M!2$9FS9lYxPF6~M|^5IE%$Mii9^ppNeO0b_N!wWmLh zgxcL7&pYN-7X{7Ufw=FyHKzyCWOJz6dJTYkque`gCsK0y!bbJupy@8`GXAyC#4&SP zJB_RI$G^o|Gr)qFP z!IcD-S|OBn3l}g8+L(MR3;9UseFECO7YR;xx^yk#NoQQXm}yaNy*3b^8BP}bo)1MH z|{l&v{<*z#Sr_+G}iZaE=K#L-E9P^LtIM*!jx%K2XrQgaO z2xTmp;;flSiatTUu{QlY%cE^8La!4|%8>dIVTmlOq&uc`8MkbQ1vc*xHb4R^BJ4-8 zLc+mJT_=%tZBq7mv{oKg;11F&_*jbpYzgLuFJ`Y7H^P}>#4@rPxzv%>I34#OVbB;m zC3T`mcGrS5r5>anq(kOQ7PB0}aWuU|NqtDFugC~U7(_LH*}f9>rVT*QUd6Ph4k)|k zCe@R&D}hmSV8Y|zz|&089miqClKz?l*&E1|ThtrPWedTH56;>VA@iu~$=*AT`~I7M zl@0-L;GR&L5*CqUpi-Xgnz;fBiisN25 z%^C##USB->#-J^u+Pz(&E&^?a7$t`J%4pYu6qqCk zuqM?7d`#HbcwLGTDWRxc6E!(ot2aDh+hjIO|9Vhth9h8b9*CL++r5`A*LRr%q*m0s zu#L||J4Fx#AWXx)AjH*Qa33R_TvSMlBGuN5vK(p_XnTBXr*>T4>V0Y+!a^Bhv>-u^ zf6=@)`k{ak=rgaL+-3Y8R2xnj_4`y6b?xqI7lqcj^@+inMl~&*Y-mSK@iLg6+%b^k zaYzH>j%Z|#yFQy*TD-1y4I{S}eZu<0Mu=TACWJ>0>5cjz<|gQXBk@blQnwN{podW) zKkM%qXb{Vohuo+sB1$LqFqjozFoCk!@VnGlCr{eA@ zf^utgTA^VpQqer>6u|-D?Soz$f19k;fMz6NH!6Z%RBm8E5{K&zgRT&45~@-YoyJ_U zop?mO0uK$cE1iRO*Ks-kMJDif@tBmbTzmNQP(D5Az*6QQ%aoNeHRYxLEr0Ff5_n6~zB|giO*Ps-Y z4sE_YXg&)#AB<8fHz52{#ZOJ9b!ZTuT|bfrkNemVdDI&sV^LxcONR&MY47W}lhk+~ zjImb%@){)ONubxVx+gWYR?TI36>V8Sl1}K%JJ2y7HhS^d+8!5=F zGb49IQT2fz3I1?dnJzrJ($LUkNW!CD5nWQQ<&@wnk^A7|&>_1rfuTVY+6kox0k8d( zF>iMQb=(adDl@AU2(o1|)sk?lRq)dkXJTOr6>^I%gqf~UL@*QxRGN^T=uDJ)_|Cpn zyO@x}?!s<_h?E7r&q4}SHt+1!rNE=$L-OHXA#0pPn%QA;7j%Kp89&?=`i!>~{DvfJ z0zSQx7gF5w(Bc9;4!R6=k*`&?d~G+WjmkIHTH{atgzCtHg%C(|8Tbe45b~)7^og?9 zEXj1tTY5{*8dVbptESt{>ut7EPvQf7;ZHXGlN*q*D^%I^Xy~vbtkeh{j z>ShhZ^D3FOTBZlfrhgp*w&!ucKt%-aLZJQxeH(JMx=~%rrL{gRy~Vvk<+C$63JEJQ zy_z&TMjRA*m=g_%MD>mC_3Rss^UN4;U}<3!V7(|VX+duyEs^m8Z9xqJPnh9@QMeVn zE4A62i#C9|I`u51l?!6ysYaFkFa%Vq&3 zTFhX zsIR8ay=p4{Tq|9LdZc)EGd!`odfRv1sJmrBJ{@^Hpe_U+0pO#}=G}hONIG7|N_Hb^ z9S{TO&}-~f+rTe^TS+H1*-mX4+rU;49cGT`Gt9-L_tjJZf`afuJ64J56j~{pLfFR$ zO_HeEv9gqb*Vj{CBmXqwv6tOSf*8{>DW$uxr=|xfZ_*(_TBlAl;%G8&N5 zMLrfWs6yi%aUkIG^Pt(i5N99(S6dS@M0Bl8I~XKGdP0)p8)Ij)l-0=SkV?v?GYu6gtM>F|#|%^EGwd8uh}oDUG-yWf2NaOxoCF#p1A>Gd&SsP~ zoCci;`rZkmSkWF{DQ%|AKY+X5%v>kcU~;m=GTutw13%FVoG-B`+8D)-NEVJ9?F!Aj zNg_+_@?+Be20Nz>$$X_k@!a?(Ja zp|~*95x9=A>ze3Xj5Ys=Za?y{n{A~`3J|lBf?Nzv8f8#7I=>sWZD^!(D^hk^Qs_X7 z!YG0DXZA`Un^X@5aVdUdrprW3w_{TAWFiKf0kcv}_2fn1i%KffK^IYvN7Ef*N{;|- zHgjoa(-Is*AEv*pQqY#!4UFa;FpOj$p{l#dPIc~C>KVI}6G_94>;Oy^{31Z;j3ztyKJ?&WjBZ#SFfjMX{*co1sY$Jd4e_Qgz3lq(2EBlz594}F z1Tg=D=0fK-9x&I_E7tl<--lb9ezi}@^vdcR$da}SiOam8xbg6YUmx)u@)UfC5k%+{ zsrfQM0`*B&(j1vggD@TmlCGZ=v$jKGpdc2wt=7DNR zO&c-B&@GyrK{ms14KFPK4YqWUd5B{nDzz?T!aN0H1j2-Kt8=8ymmxXzkBoYuV4$`B z#1>T!h)7EqH7kf}1|u<|lK3!|f!F#7Y8Bamk%}xC60xdhAeGJ`G^?;?LQV(R@PMU} za_ZTS(KQ7H$pUhagWT(Y^&U_%lN)( zx^6$%Btc542jpN8`xVorXPxSWU_8GZIFE_W3^)uR6^DM(E#YY!wg z##e~MK%ImA5KUT3VA2C%ZCpl|7Mn>t|tnMooj~Y%2qy~;CbSkH)1AEJKr_K^xqXkY|Uk64AI^_X} zJ};q)=VjgjjYV$bnc;kG6x0O-A*>OWQFX=EoAe*D69cqSI-P;bNrmi!lyvs&t^G1k z&pW~n3#rLAKR)QkOMp~^Llui!sB$p4{t}sbYGb_0CQLK|td(r)_{Q@kOeYUA<4Jp; z*yAH@9OsvO(3VOlqLRKdQPySdh|zbrmueTef;X_2tx!t@pHi-}^lLN(fp60id7LYB zsVp8AP{lxwF9htg#!TRBym8V@z_T;?>GUT68y-*(l%;ZPVn-ko5?hdP#$Dl*6AYD% ztN4w)E|O-7M+C~)LcU9F1*+&F{hCdyBrqcw7wJNTcW1kkEDjenDigV zx11JKYa02kDVySeI13|U_f5qs`*r-(a$D-C$)4E4EJO;w>-wsO6v$^#tDbI{)?;pP*DAho)+8h8c8KW98+5 zA4t|6u*|~KLosN>)l%7EHx&&hA1Utu;_`@eGkiB>bL}dsY77{DAliVj1q*P{oM?6n?3Q{bj|X#mirwC1V*$8rj_D6M5Ar>W7%s{RvISXcoyf z=Dd!FIJ*(OWWQ8PsTg^uOanRcLa&0Z66y|u2}FxOF_xnG?=ypT^P}^gyrR#@N409u z5-dqfslfep;4(mTjx@&b9Qv2;w>yn@&X_QxPQqkp)SI!C2TvyN!|32S&gp>C@ z-MH0?y&lhl%jB5Gc6kD=Ntr|qWgC6c)vRa9W^;_=WteUT(eUF(3dV1k9cqz`{~FK~ zkQ=Jn_5T;}#Q2Rs{t9)O1j`=kqDVnVAs6_D#CXdgE#&>T{?nInuE- zpLlsH)WAA2OI~9xKH9h?!xFHTfhRr1xAv(5fN%hP@Ax{Ab2 z%bSKijYLO3+xf|odydRCPAy9MVwvkpdHdd>rQa?x0$XR_n0dJ1j}N~0<&#;y)4@<@ zc1QHd_x|SV*3ju-(dPCgAANF`-0ubw@vEAall;Q;eJkJZ%sf`2vc(QHq1kNsW^GII z)t%keiNTtl%q@?~_K(Ug@>yFRc$XWFmmLoe(%MmCdfkT4;x|=X@aLY$P`PVy`b5iV z(-%v*N{*PSpDg>9dlu?B5K>lGbNaygD_ zhS$eK|0&ketR%M;3u>Q9d#P?I4=;!OhM9Y^b%m28siF_uW<&-;Rh;Au3Ht+|q%)-QF|_VKKB_exxhtvtqa zj0Uaz;%zyV@2}RV%lQ47d0r^Kccv<>e_8!P(2$VKxm3Iby*c#^Kq3 zT9Q7fHtWr_&vepQ7l`fS1=uT3-0IhH)lOgllRI}*=DBQqBZUgbU+=V}5Oevdkvi=Ils?`6I2FvB!% zGq;R9jSl+8IvRYbX5jI^#LN>-McK*03`4{#K9|TZlhbce|Hx^b4?pGW#4wXZfNh9* zdRDR_ct=)i z#@GC$H^`t|=UT=UjQc$vG0W;37IYyNfsK>t6A9+Iy>=wyX}!IsDNU3`J~3ApRYADy zt$9XAw<6BP9OclCTIdVoI-FFB9aA{k627%eFUBTf3A zii9%yJ=MiGZjG8LcoA~WaGPd|JV}t`Cz8jrAK{Hc`e_!^Wwc6Y#M~?-v#v=PByv1e zX2eVls^p@PD|s|&n=R9#zWt1l16FBkw5J@Xb(BtFV!MWk(c+&pt!kNZk3c}(C}qf4 zAqI}93R=IUi>0IbTQ}*a&;OV+*g0+?u`~6aR9+2MSK3h?twWsosntfyNJUzs%Z^sW z4qc~j*ZeK#tGiU9`}bruEvq^4@Az*m PTz5^sciOhwA6oH0=kP^% literal 0 HcmV?d00001 diff --git a/tests/reference/pcx/images/gmarbles.pcx.1359bee5.png b/tests/reference/pcx/images/gmarbles.pcx.1359bee5.png new file mode 100644 index 0000000000000000000000000000000000000000..79b6d69cd5026749d3bd9d3b31020984533a09ea GIT binary patch literal 32950 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 literal 0 HcmV?d00001 diff --git a/tests/reference/pcx/images/marbles.pcx.96101fd7.png b/tests/reference/pcx/images/marbles.pcx.96101fd7.png new file mode 100644 index 0000000000000000000000000000000000000000..fb57c64c042efe3e51a96550ca053147e300273a GIT binary patch literal 34618 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 literal 0 HcmV?d00001 diff --git a/tests/reference_images.rs b/tests/reference_images.rs index 26740670e1..2da7d622d4 100644 --- a/tests/reference_images.rs +++ b/tests/reference_images.rs @@ -18,7 +18,7 @@ where { let base: PathBuf = BASE_PATH.iter().collect(); let decoders = &[ - "tga", "tiff", "png", "gif", "bmp", "ico", "hdr", "pbm", "webp", + "tga", "tiff", "png", "gif", "bmp", "ico", "hdr", "pbm", "webp", "pcx", ]; for decoder in decoders { let mut path = base.clone(); diff --git a/tests/truncate_images.rs b/tests/truncate_images.rs index de2bbefddd..354f78d734 100644 --- a/tests/truncate_images.rs +++ b/tests/truncate_images.rs @@ -16,7 +16,7 @@ where { let base: PathBuf = BASE_PATH.iter().collect(); let decoders = &[ - "tga", "tiff", "png", "gif", "bmp", "ico", "jpg", "hdr", "farbfeld", "exr", + "tga", "tiff", "png", "gif", "bmp", "ico", "jpg", "hdr", "farbfeld", "exr", "pcx", ]; for decoder in decoders { let mut path = base.clone(); @@ -99,3 +99,8 @@ fn truncate_farbfeld() { fn truncate_exr() { truncate_images("exr"); } + +#[test] +fn truncate_pcx() { + truncate_images("pcx"); +} From 9b2d240f11e740f616c1c1a8a0da2a31697d4c19 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Sat, 26 Oct 2024 00:09:13 +0100 Subject: [PATCH 2/6] Allow WTFPL --- deny.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/deny.toml b/deny.toml index 5bb4a46f3e..6632ea5366 100644 --- a/deny.toml +++ b/deny.toml @@ -22,6 +22,7 @@ allow = [ "MIT-0", "MPL-2.0", "Unicode-DFS-2016", + "WTFPL", ] From f163f1449251f0049373b52b05c07974ac5ee188 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Sat, 26 Oct 2024 10:20:48 +0100 Subject: [PATCH 3/6] Make the PCX magic bytes stricter --- src/image_reader/free_functions.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/image_reader/free_functions.rs b/src/image_reader/free_functions.rs index bf4a3d2341..7e32159a9d 100644 --- a/src/image_reader/free_functions.rs +++ b/src/image_reader/free_functions.rs @@ -124,7 +124,7 @@ pub(crate) fn write_buffer_impl( } } -static MAGIC_BYTES: [(&[u8], ImageFormat); 24] = [ +static MAGIC_BYTES: [(&[u8], ImageFormat); 25] = [ (b"\x89PNG\r\n\x1a\n", ImageFormat::Png), (&[0xff, 0xd8, 0xff], ImageFormat::Jpeg), (b"GIF89a", ImageFormat::Gif), @@ -148,7 +148,8 @@ static MAGIC_BYTES: [(&[u8], ImageFormat); 24] = [ (b"\0\0\0\x1cftypavif", ImageFormat::Avif), (&[0x76, 0x2f, 0x31, 0x01], ImageFormat::OpenExr), // = &exr::meta::magic_number::BYTES (b"qoif", ImageFormat::Qoi), - (&[0x0A], ImageFormat::Pcx), + (&[0x0a, 0x02], ImageFormat::Pcx), + (&[0x0a, 0x05], ImageFormat::Pcx), ]; /// Guess image format from memory block From 4dc3a267c1d896dc72f4b0e7ceb60cc2afa0a8b5 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Sat, 26 Oct 2024 10:23:27 +0100 Subject: [PATCH 4/6] Test the pcx feature --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 96da5d9a9c..3c6a25c737 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - features: ['', default, rayon, avif, bmp, dds, exr, ff, gif, hdr, ico, jpeg, png, pnm, qoi, tga, tiff, webp] + features: ['', default, rayon, avif, bmp, dds, exr, ff, gif, hdr, ico, jpeg, pcx, png, pnm, qoi, tga, tiff, webp] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable From 84cd6041098cf74306178f09b481469aea9793e7 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Sat, 26 Oct 2024 21:43:00 +0100 Subject: [PATCH 5/6] Disable pcx by default --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 6531e9b5b5..65cc0771bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,7 @@ criterion = "0.5.0" default = ["rayon", "default-formats"] # Format features -default-formats = ["avif", "bmp", "dds", "exr", "ff", "gif", "hdr", "ico", "jpeg", "pcx", "png", "pnm", "qoi", "tga", "tiff", "webp"] +default-formats = ["avif", "bmp", "dds", "exr", "ff", "gif", "hdr", "ico", "jpeg", "png", "pnm", "qoi", "tga", "tiff", "webp"] avif = ["dep:ravif", "dep:rgb"] bmp = [] dds = [] From 25cede1450143eb797066d56eca3e66e4d16c249 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Mon, 28 Oct 2024 01:26:37 +0000 Subject: [PATCH 6/6] Tighten up WTFPL licensing situation --- Cargo.toml | 2 +- deny.toml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 65cc0771bd..7cd5fbdf60 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,7 +78,7 @@ gif = ["dep:gif", "dep:color_quant"] hdr = [] ico = ["bmp", "png"] jpeg = ["dep:zune-core", "dep:zune-jpeg"] -pcx = ["dep:pcx"] +pcx = ["dep:pcx"] # Note that the PCX dependency uses the WTFPL license png = ["dep:png"] pnm = [] qoi = ["dep:qoi"] diff --git a/deny.toml b/deny.toml index 6632ea5366..951f2a2fab 100644 --- a/deny.toml +++ b/deny.toml @@ -22,9 +22,12 @@ allow = [ "MIT-0", "MPL-2.0", "Unicode-DFS-2016", - "WTFPL", ] +[[licenses.exceptions]] +allow = ["WTFPL"] +name = "pcx" +version = "*" [advisories] yanked = "deny"