From 521b58dc0798d6ef3c4a5dd385b165509db249db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kr=C3=A1l?= Date: Sat, 15 May 2021 18:12:34 +0200 Subject: [PATCH 1/7] expand_strip and expand_tile cleanup --- src/decoder/mod.rs | 319 +++++++++++++-------------------------------- 1 file changed, 94 insertions(+), 225 deletions(-) diff --git a/src/decoder/mod.rs b/src/decoder/mod.rs index ac8694c..36ac503 100644 --- a/src/decoder/mod.rs +++ b/src/decoder/mod.rs @@ -526,56 +526,6 @@ fn rev_hpredict( Ok(()) } -fn process_photometry_u64(buffer: &mut [u64]) { - for datum in buffer.iter_mut() { - *datum = 0xffff_ffff_ffff_ffff - *datum - } -} - -fn process_photometry_u32(buffer: &mut [u32]) { - for datum in buffer.iter_mut() { - *datum = 0xffff_ffff - *datum - } -} - -fn process_photometry_u16(buffer: &mut [u16]) { - for datum in buffer.iter_mut() { - *datum = 0xffff - *datum - } -} - -fn process_photometry_i16(buffer: &mut [i16]) { - for datum in buffer.iter_mut() { - *datum = !*datum; - } -} - -fn process_photometry_i8(buffer: &mut [i8]) { - for datum in buffer.iter_mut() { - *datum = !*datum; - } -} - -fn process_photometry_u8(buffer: &mut [u8]) { - for byte in buffer.iter_mut() { - *byte = 0xff - *byte - } -} - -fn process_photometry_f64(buffer: &mut [f64]) { - for datum in buffer.iter_mut() { - // FIXME: assumes [0, 1) range for floats - *datum = 1.0 - *datum - } -} - -fn process_photometry_f32(buffer: &mut [f32]) { - for datum in buffer.iter_mut() { - // FIXME: assumes [0, 1) range for floats - *datum = 1.0 - *datum - } -} - impl Decoder { /// Create a new decoder that decodes from the stream ```r``` pub fn new(r: R) -> TiffResult> { @@ -1057,6 +1007,86 @@ impl Decoder { self.get_tag(tag)?.into_string() } + fn invert_colors_unsigned(buffer: &mut [T], max: T) + where + T: std::ops::Sub + std::ops::Sub + Copy, + { + for datum in buffer.iter_mut() { + *datum = max - *datum + } + } + + fn invert_colors_fp(buffer: &mut [T], max: T) + where + T: std::ops::Sub + std::ops::Sub + Copy, + { + for datum in buffer.iter_mut() { + // FIXME: assumes [0, 1) range for floats + *datum = max - *datum + } + } + + fn invert_colors(buf: &mut DecodingBuffer, color_type: ColorType, start: usize, end: usize) { + match (color_type, buf) { + (ColorType::Gray(64), DecodingBuffer::U64(ref mut buffer)) => { + Self::invert_colors_unsigned(&mut buffer[start..end], u64::MAX); + } + (ColorType::Gray(32), DecodingBuffer::U32(ref mut buffer)) => { + Self::invert_colors_unsigned(&mut buffer[start..end], u32::MAX); + } + (ColorType::Gray(16), DecodingBuffer::U16(ref mut buffer)) => { + Self::invert_colors_unsigned(&mut buffer[start..end], u16::MAX); + } + (ColorType::Gray(n), DecodingBuffer::U8(ref mut buffer)) if n <= 8 => { + Self::invert_colors_unsigned(&mut buffer[start..end], u8::MAX); + } + (ColorType::Gray(32), DecodingBuffer::F32(ref mut buffer)) => { + Self::invert_colors_fp(&mut buffer[start..end], 1.0); + } + (ColorType::Gray(64), DecodingBuffer::F64(ref mut buffer)) => { + Self::invert_colors_fp(&mut buffer[start..end], 1.0); + } + _ => {} + } + } + + /// Fix endianness. If `byte_order` matches the host, then conversion is a no-op. + fn fix_endianness(buf: &mut DecodingBuffer, byte_order: ByteOrder, s: usize, e: usize) { + // "s" = start, "e" = end, used for better formatting + match byte_order { + ByteOrder::LittleEndian => match buf { + DecodingBuffer::U8(_) | DecodingBuffer::I8(_) => {} + DecodingBuffer::U16(b) => b[s..e].iter_mut().for_each(|v| *v = u16::from_le(*v)), + DecodingBuffer::I16(b) => b[s..e].iter_mut().for_each(|v| *v = i16::from_le(*v)), + DecodingBuffer::U32(b) => b[s..e].iter_mut().for_each(|v| *v = u32::from_le(*v)), + DecodingBuffer::I32(b) => b[s..e].iter_mut().for_each(|v| *v = i32::from_le(*v)), + DecodingBuffer::U64(b) => b[s..e].iter_mut().for_each(|v| *v = u64::from_le(*v)), + DecodingBuffer::I64(b) => b[s..e].iter_mut().for_each(|v| *v = i64::from_le(*v)), + DecodingBuffer::F32(b) => b[s..e] + .iter_mut() + .for_each(|v| *v = f32::from_bits(u32::from_le(v.to_bits()))), + DecodingBuffer::F64(b) => b[s..e] + .iter_mut() + .for_each(|v| *v = f64::from_bits(u64::from_le(v.to_bits()))), + }, + ByteOrder::BigEndian => match buf { + DecodingBuffer::U8(_) | DecodingBuffer::I8(_) => {} + DecodingBuffer::U16(b) => b[s..e].iter_mut().for_each(|v| *v = u16::from_be(*v)), + DecodingBuffer::I16(b) => b[s..e].iter_mut().for_each(|v| *v = i16::from_be(*v)), + DecodingBuffer::U32(b) => b[s..e].iter_mut().for_each(|v| *v = u32::from_be(*v)), + DecodingBuffer::I32(b) => b[s..e].iter_mut().for_each(|v| *v = i32::from_be(*v)), + DecodingBuffer::U64(b) => b[s..e].iter_mut().for_each(|v| *v = u64::from_be(*v)), + DecodingBuffer::I64(b) => b[s..e].iter_mut().for_each(|v| *v = i64::from_be(*v)), + DecodingBuffer::F32(b) => b[s..e] + .iter_mut() + .for_each(|v| *v = f32::from_bits(u32::from_be(v.to_bits()))), + DecodingBuffer::F64(b) => b[s..e] + .iter_mut() + .for_each(|v| *v = f64::from_bits(u64::from_be(v.to_bits()))), + }, + }; + } + /// Decompresses the strip into the supplied buffer. /// Returns the number of bytes read. fn expand_strip<'a>( @@ -1084,28 +1114,14 @@ impl Decoder { // Construct necessary reader to perform decompression. self.goto_offset_u64(offset)?; let byte_order = self.reader.byte_order; - let mut reader: Box = match self.compression_method { - CompressionMethod::None => Box::new(&mut self.reader), - CompressionMethod::LZW => Box::new( - LZWReader::new( - &mut self.reader, - usize::try_from(length)?, - buffer.len() * buffer.byte_len(), - )? - .1, - ), - CompressionMethod::PackBits => { - Box::new(PackBitsReader::new(&mut self.reader, usize::try_from(length)?)?.1) - } - CompressionMethod::OldDeflate => { - Box::new(DeflateReader::new(&mut self.reader, buffer.len() * buffer.byte_len())?.1) - } - method => { - return Err(TiffError::UnsupportedError( - TiffUnsupportedError::UnsupportedCompressionMethod(method), - )) - } - }; + + let mut reader = Self::create_reader( + &mut self.reader, + self.compression_method, + length, + buffer.len(), + buffer.byte_len(), + )?; // Read into output buffer. { @@ -1136,77 +1152,12 @@ impl Decoder { } } - // Fix endianness. If `byte_order` matches the host, then conversion is a no-op. - match byte_order { - ByteOrder::LittleEndian => match &mut buffer { - DecodingBuffer::U8(_) | DecodingBuffer::I8(_) => {} - DecodingBuffer::U16(buf) => buf.iter_mut().for_each(|v| *v = u16::from_le(*v)), - DecodingBuffer::I16(buf) => buf.iter_mut().for_each(|v| *v = i16::from_le(*v)), - DecodingBuffer::U32(buf) => buf.iter_mut().for_each(|v| *v = u32::from_le(*v)), - DecodingBuffer::I32(buf) => buf.iter_mut().for_each(|v| *v = i32::from_le(*v)), - DecodingBuffer::U64(buf) => buf.iter_mut().for_each(|v| *v = u64::from_le(*v)), - DecodingBuffer::I64(buf) => buf.iter_mut().for_each(|v| *v = i64::from_le(*v)), - DecodingBuffer::F32(buf) => buf - .iter_mut() - .for_each(|v| *v = f32::from_bits(u32::from_le(v.to_bits()))), - DecodingBuffer::F64(buf) => buf - .iter_mut() - .for_each(|v| *v = f64::from_bits(u64::from_le(v.to_bits()))), - }, - ByteOrder::BigEndian => match &mut buffer { - DecodingBuffer::U8(_) | DecodingBuffer::I8(_) => {} - DecodingBuffer::U16(buf) => buf.iter_mut().for_each(|v| *v = u16::from_be(*v)), - DecodingBuffer::I16(buf) => buf.iter_mut().for_each(|v| *v = i16::from_be(*v)), - DecodingBuffer::U32(buf) => buf.iter_mut().for_each(|v| *v = u32::from_be(*v)), - DecodingBuffer::I32(buf) => buf.iter_mut().for_each(|v| *v = i32::from_be(*v)), - DecodingBuffer::U64(buf) => buf.iter_mut().for_each(|v| *v = u64::from_be(*v)), - DecodingBuffer::I64(buf) => buf.iter_mut().for_each(|v| *v = i64::from_be(*v)), - DecodingBuffer::F32(buf) => buf - .iter_mut() - .for_each(|v| *v = f32::from_bits(u32::from_be(v.to_bits()))), - DecodingBuffer::F64(buf) => buf - .iter_mut() - .for_each(|v| *v = f64::from_bits(u64::from_be(v.to_bits()))), - }, - } + let len = buffer.len(); + Self::fix_endianness(&mut buffer, byte_order, 0, len); // Invert colors if necessary. if self.photometric_interpretation == PhotometricInterpretation::WhiteIsZero { - match (color_type, &mut buffer) { - (ColorType::Gray(64), DecodingBuffer::U64(ref mut buffer)) => { - for datum in buffer.iter_mut() { - *datum = 0xffff_ffff_ffff_ffff - *datum - } - } - (ColorType::Gray(32), DecodingBuffer::U32(ref mut buffer)) => { - for datum in buffer.iter_mut() { - *datum = 0xffff_ffff - *datum - } - } - (ColorType::Gray(16), DecodingBuffer::U16(ref mut buffer)) => { - for datum in buffer.iter_mut() { - *datum = 0xffff - *datum - } - } - (ColorType::Gray(n), DecodingBuffer::U8(ref mut buffer)) if n <= 8 => { - for byte in buffer.iter_mut() { - *byte = 0xff - *byte - } - } - (ColorType::Gray(32), DecodingBuffer::F32(ref mut buffer)) => { - for datum in buffer.iter_mut() { - // FIXME: assumes [0, 1) range for floats - *datum = 1.0 - *datum - } - } - (ColorType::Gray(64), DecodingBuffer::F64(ref mut buffer)) => { - for datum in buffer.iter_mut() { - // FIXME: assumes [0, 1) range for floats - *datum = 1.0 - *datum - } - } - _ => {} - } + Self::invert_colors(&mut buffer, color_type, 0, len); } Ok(()) @@ -1270,93 +1221,11 @@ impl Decoder { reader.read_exact(padding_buffer)? } - // Fix byte order if necessary - match self.byte_order { - ByteOrder::LittleEndian => match &mut buffer { - DecodingBuffer::U8(_) | DecodingBuffer::I8(_) => {} - DecodingBuffer::U16(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = u16::from_le(*v)), - DecodingBuffer::I16(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = i16::from_le(*v)), - DecodingBuffer::U32(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = u32::from_le(*v)), - DecodingBuffer::I32(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = i32::from_le(*v)), - DecodingBuffer::U64(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = u64::from_le(*v)), - DecodingBuffer::I64(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = i64::from_le(*v)), - DecodingBuffer::F32(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = f32::from_bits(u32::from_le(v.to_bits()))), - DecodingBuffer::F64(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = f64::from_bits(u64::from_le(v.to_bits()))), - }, - ByteOrder::BigEndian => match &mut buffer { - DecodingBuffer::U8(_) | DecodingBuffer::I8(_) => {} - DecodingBuffer::U16(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = u16::from_be(*v)), - DecodingBuffer::I16(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = i16::from_be(*v)), - DecodingBuffer::U32(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = u32::from_be(*v)), - DecodingBuffer::I32(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = i32::from_be(*v)), - DecodingBuffer::U64(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = u64::from_be(*v)), - DecodingBuffer::I64(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = i64::from_be(*v)), - DecodingBuffer::F32(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = f32::from_bits(u32::from_be(v.to_bits()))), - DecodingBuffer::F64(b) => b[row_start..row_end] - .iter_mut() - .for_each(|v| *v = f64::from_bits(u64::from_be(v.to_bits()))), - }, - }; + Self::fix_endianness(&mut buffer, self.byte_order, row_start, row_end); // Invert colors if necessary. if self.photometric_interpretation == PhotometricInterpretation::WhiteIsZero { - match (color_type, &mut buffer) { - (ColorType::Gray(64), DecodingBuffer::U64(ref mut buffer)) => { - process_photometry_u64(&mut buffer[row_start..row_end]); - } - (ColorType::Gray(32), DecodingBuffer::U32(ref mut buffer)) => { - process_photometry_u32(&mut buffer[row_start..row_end]); - } - (ColorType::Gray(16), DecodingBuffer::U16(ref mut buffer)) => { - process_photometry_u16(&mut buffer[row_start..row_end]); - } - (ColorType::Gray(n), DecodingBuffer::U8(ref mut buffer)) if n <= 8 => { - process_photometry_u8(&mut buffer[row_start..row_end]); - } - (ColorType::Gray(32), DecodingBuffer::F32(ref mut buffer)) => { - process_photometry_f32(&mut buffer[row_start..row_end]); - } - (ColorType::Gray(64), DecodingBuffer::F64(ref mut buffer)) => { - process_photometry_f64(&mut buffer[row_start..row_end]); - } - (ColorType::Gray(n), DecodingBuffer::I8(ref mut buffer)) if n <= 8 => { - process_photometry_i8(&mut buffer[row_start..row_end]); - } - (ColorType::Gray(16), DecodingBuffer::I16(ref mut buffer)) => { - process_photometry_i16(&mut buffer[row_start..row_end]); - } - _ => {} - } + Self::invert_colors(&mut buffer, color_type, row_start, row_end); } } @@ -1368,7 +1237,7 @@ impl Decoder { compression_method: CompressionMethod, compressed_length: u64, samples: usize, // Expected chunk length in samples - byte_len: usize, // Byte length of the result buffer + byte_len: usize, // Byte length of the samples in result buffer ) -> TiffResult> { Ok(match compression_method { CompressionMethod::None => Box::new(reader), From b9590e0842fc22866bccf94e2f6a27ac1dfcafdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kr=C3=A1l?= Date: Sat, 15 May 2021 18:15:24 +0200 Subject: [PATCH 2/7] remove WhiteIsZero i8 test --- tests/decode_images.rs | 5 ----- tests/images/tiled-whiteiszero-gray-i8.tif | Bin 143674 -> 0 bytes 2 files changed, 5 deletions(-) delete mode 100644 tests/images/tiled-whiteiszero-gray-i8.tif diff --git a/tests/decode_images.rs b/tests/decode_images.rs index 4bc0839..863b23f 100644 --- a/tests/decode_images.rs +++ b/tests/decode_images.rs @@ -236,11 +236,6 @@ fn test_tiled_oversize_gray_i8() { test_image_sum_i8("tiled-oversize-gray-i8.tif", ColorType::Gray(8), 1214996); } -#[test] -fn test_tiled_whiteiszero_gray_i8() { - test_image_sum_i8("tiled-whiteiszero-gray-i8.tif", ColorType::Gray(8), 1214996); -} - #[test] fn test_tiled_cmyk_i8() { test_image_sum_i8("tiled-cmyk-i8.tif", ColorType::CMYK(8), 1759101); diff --git a/tests/images/tiled-whiteiszero-gray-i8.tif b/tests/images/tiled-whiteiszero-gray-i8.tif deleted file mode 100644 index ccff165d8f08b4362b8eb3f6ca2bc7fbd3de638d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143674 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 Ipau*4A5Gx5TmS$7 From 46c7efd8365b4c9e1e7f4a5d912ad6894a8877fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kr=C3=A1l?= Date: Sat, 15 May 2021 19:55:04 +0200 Subject: [PATCH 3/7] remove unneeded mutability --- src/decoder/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/decoder/mod.rs b/src/decoder/mod.rs index 6704b44..a227924 100644 --- a/src/decoder/mod.rs +++ b/src/decoder/mod.rs @@ -1115,7 +1115,7 @@ impl Decoder { self.goto_offset_u64(offset)?; let byte_order = self.reader.byte_order; - let mut reader = Self::create_reader( + let reader = Self::create_reader( &mut self.reader, self.compression_method, length, From d0e4f37a286056aeeff17b363ccb8bbe5114d607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kr=C3=A1l?= Date: Sat, 15 May 2021 21:14:00 +0200 Subject: [PATCH 4/7] implement subrange for DecodingBuffer --- src/decoder/mod.rs | 83 +++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/src/decoder/mod.rs b/src/decoder/mod.rs index a227924..4d42499 100644 --- a/src/decoder/mod.rs +++ b/src/decoder/mod.rs @@ -1,7 +1,7 @@ -use std::cmp; use std::collections::HashMap; use std::convert::TryFrom; use std::io::{self, Read, Seek}; +use std::{cmp, ops::Range}; use crate::{ bytecast, ColorType, TiffError, TiffFormatError, TiffResult, TiffUnsupportedError, UsageError, @@ -214,21 +214,21 @@ impl<'a> DecodingBuffer<'a> { } } - fn prefix<'b>(&'b mut self, new_length: usize) -> DecodingBuffer<'b> + fn subrange<'b>(&'b mut self, range: Range) -> DecodingBuffer<'b> where 'a: 'b, { match *self { - DecodingBuffer::U8(ref mut buf) => DecodingBuffer::U8(&mut buf[..new_length]), - DecodingBuffer::U16(ref mut buf) => DecodingBuffer::U16(&mut buf[..new_length]), - DecodingBuffer::U32(ref mut buf) => DecodingBuffer::U32(&mut buf[..new_length]), - DecodingBuffer::U64(ref mut buf) => DecodingBuffer::U64(&mut buf[..new_length]), - DecodingBuffer::F32(ref mut buf) => DecodingBuffer::F32(&mut buf[..new_length]), - DecodingBuffer::F64(ref mut buf) => DecodingBuffer::F64(&mut buf[..new_length]), - DecodingBuffer::I8(ref mut buf) => DecodingBuffer::I8(&mut buf[..new_length]), - DecodingBuffer::I16(ref mut buf) => DecodingBuffer::I16(&mut buf[..new_length]), - DecodingBuffer::I32(ref mut buf) => DecodingBuffer::I32(&mut buf[..new_length]), - DecodingBuffer::I64(ref mut buf) => DecodingBuffer::I64(&mut buf[..new_length]), + DecodingBuffer::U8(ref mut buf) => DecodingBuffer::U8(&mut buf[range]), + DecodingBuffer::U16(ref mut buf) => DecodingBuffer::U16(&mut buf[range]), + DecodingBuffer::U32(ref mut buf) => DecodingBuffer::U32(&mut buf[range]), + DecodingBuffer::U64(ref mut buf) => DecodingBuffer::U64(&mut buf[range]), + DecodingBuffer::F32(ref mut buf) => DecodingBuffer::F32(&mut buf[range]), + DecodingBuffer::F64(ref mut buf) => DecodingBuffer::F64(&mut buf[range]), + DecodingBuffer::I8(ref mut buf) => DecodingBuffer::I8(&mut buf[range]), + DecodingBuffer::I16(ref mut buf) => DecodingBuffer::I16(&mut buf[range]), + DecodingBuffer::I32(ref mut buf) => DecodingBuffer::I32(&mut buf[range]), + DecodingBuffer::I64(ref mut buf) => DecodingBuffer::I64(&mut buf[range]), } } } @@ -1026,61 +1026,60 @@ impl Decoder { } } - fn invert_colors(buf: &mut DecodingBuffer, color_type: ColorType, start: usize, end: usize) { + fn invert_colors(buf: &mut DecodingBuffer, color_type: ColorType) { match (color_type, buf) { (ColorType::Gray(64), DecodingBuffer::U64(ref mut buffer)) => { - Self::invert_colors_unsigned(&mut buffer[start..end], u64::MAX); + Self::invert_colors_unsigned(buffer, u64::MAX); } (ColorType::Gray(32), DecodingBuffer::U32(ref mut buffer)) => { - Self::invert_colors_unsigned(&mut buffer[start..end], u32::MAX); + Self::invert_colors_unsigned(buffer, u32::MAX); } (ColorType::Gray(16), DecodingBuffer::U16(ref mut buffer)) => { - Self::invert_colors_unsigned(&mut buffer[start..end], u16::MAX); + Self::invert_colors_unsigned(buffer, u16::MAX); } (ColorType::Gray(n), DecodingBuffer::U8(ref mut buffer)) if n <= 8 => { - Self::invert_colors_unsigned(&mut buffer[start..end], u8::MAX); + Self::invert_colors_unsigned(buffer, u8::MAX); } (ColorType::Gray(32), DecodingBuffer::F32(ref mut buffer)) => { - Self::invert_colors_fp(&mut buffer[start..end], 1.0); + Self::invert_colors_fp(buffer, 1.0); } (ColorType::Gray(64), DecodingBuffer::F64(ref mut buffer)) => { - Self::invert_colors_fp(&mut buffer[start..end], 1.0); + Self::invert_colors_fp(buffer, 1.0); } _ => {} } } /// Fix endianness. If `byte_order` matches the host, then conversion is a no-op. - fn fix_endianness(buf: &mut DecodingBuffer, byte_order: ByteOrder, s: usize, e: usize) { - // "s" = start, "e" = end, used for better formatting + fn fix_endianness(buf: &mut DecodingBuffer, byte_order: ByteOrder) { match byte_order { ByteOrder::LittleEndian => match buf { DecodingBuffer::U8(_) | DecodingBuffer::I8(_) => {} - DecodingBuffer::U16(b) => b[s..e].iter_mut().for_each(|v| *v = u16::from_le(*v)), - DecodingBuffer::I16(b) => b[s..e].iter_mut().for_each(|v| *v = i16::from_le(*v)), - DecodingBuffer::U32(b) => b[s..e].iter_mut().for_each(|v| *v = u32::from_le(*v)), - DecodingBuffer::I32(b) => b[s..e].iter_mut().for_each(|v| *v = i32::from_le(*v)), - DecodingBuffer::U64(b) => b[s..e].iter_mut().for_each(|v| *v = u64::from_le(*v)), - DecodingBuffer::I64(b) => b[s..e].iter_mut().for_each(|v| *v = i64::from_le(*v)), - DecodingBuffer::F32(b) => b[s..e] + DecodingBuffer::U16(b) => b.iter_mut().for_each(|v| *v = u16::from_le(*v)), + DecodingBuffer::I16(b) => b.iter_mut().for_each(|v| *v = i16::from_le(*v)), + DecodingBuffer::U32(b) => b.iter_mut().for_each(|v| *v = u32::from_le(*v)), + DecodingBuffer::I32(b) => b.iter_mut().for_each(|v| *v = i32::from_le(*v)), + DecodingBuffer::U64(b) => b.iter_mut().for_each(|v| *v = u64::from_le(*v)), + DecodingBuffer::I64(b) => b.iter_mut().for_each(|v| *v = i64::from_le(*v)), + DecodingBuffer::F32(b) => b .iter_mut() .for_each(|v| *v = f32::from_bits(u32::from_le(v.to_bits()))), - DecodingBuffer::F64(b) => b[s..e] + DecodingBuffer::F64(b) => b .iter_mut() .for_each(|v| *v = f64::from_bits(u64::from_le(v.to_bits()))), }, ByteOrder::BigEndian => match buf { DecodingBuffer::U8(_) | DecodingBuffer::I8(_) => {} - DecodingBuffer::U16(b) => b[s..e].iter_mut().for_each(|v| *v = u16::from_be(*v)), - DecodingBuffer::I16(b) => b[s..e].iter_mut().for_each(|v| *v = i16::from_be(*v)), - DecodingBuffer::U32(b) => b[s..e].iter_mut().for_each(|v| *v = u32::from_be(*v)), - DecodingBuffer::I32(b) => b[s..e].iter_mut().for_each(|v| *v = i32::from_be(*v)), - DecodingBuffer::U64(b) => b[s..e].iter_mut().for_each(|v| *v = u64::from_be(*v)), - DecodingBuffer::I64(b) => b[s..e].iter_mut().for_each(|v| *v = i64::from_be(*v)), - DecodingBuffer::F32(b) => b[s..e] + DecodingBuffer::U16(b) => b.iter_mut().for_each(|v| *v = u16::from_be(*v)), + DecodingBuffer::I16(b) => b.iter_mut().for_each(|v| *v = i16::from_be(*v)), + DecodingBuffer::U32(b) => b.iter_mut().for_each(|v| *v = u32::from_be(*v)), + DecodingBuffer::I32(b) => b.iter_mut().for_each(|v| *v = i32::from_be(*v)), + DecodingBuffer::U64(b) => b.iter_mut().for_each(|v| *v = u64::from_be(*v)), + DecodingBuffer::I64(b) => b.iter_mut().for_each(|v| *v = i64::from_be(*v)), + DecodingBuffer::F32(b) => b .iter_mut() .for_each(|v| *v = f32::from_bits(u32::from_be(v.to_bits()))), - DecodingBuffer::F64(b) => b[s..e] + DecodingBuffer::F64(b) => b .iter_mut() .for_each(|v| *v = f64::from_bits(u64::from_be(v.to_bits()))), }, @@ -1145,11 +1144,11 @@ impl Decoder { } let len = buffer.len(); - Self::fix_endianness(&mut buffer, byte_order, 0, len); + Self::fix_endianness(&mut buffer.subrange(0..len), byte_order); // Invert colors if necessary. if self.photometric_interpretation == PhotometricInterpretation::WhiteIsZero { - Self::invert_colors(&mut buffer, color_type, 0, len); + Self::invert_colors(&mut buffer.subrange(0..len), color_type); } Ok(()) @@ -1213,11 +1212,11 @@ impl Decoder { reader.read_exact(padding_buffer)? } - Self::fix_endianness(&mut buffer, self.byte_order, row_start, row_end); + Self::fix_endianness(&mut buffer.subrange(row_start..row_end), self.byte_order); // Invert colors if necessary. if self.photometric_interpretation == PhotometricInterpretation::WhiteIsZero { - Self::invert_colors(&mut buffer, color_type, row_start, row_end); + Self::invert_colors(&mut buffer.subrange(row_start..row_end), color_type); } } @@ -1456,7 +1455,7 @@ impl Decoder { )); } - self.expand_strip(buffer.prefix(buffer_size), offset, byte_count)?; + self.expand_strip(buffer.subrange(0..buffer_size), offset, byte_count)?; self.strip_decoder.as_mut().unwrap().strip_index += 1; if u32::try_from(index)? == self.strip_count()? { From 371a9b53c39af36f77a1bedec15befdbd005f12d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kr=C3=A1l?= Date: Sat, 15 May 2021 21:31:11 +0200 Subject: [PATCH 5/7] fix u64::MAX error on older compilers --- src/decoder/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/decoder/mod.rs b/src/decoder/mod.rs index 4d42499..42c52e0 100644 --- a/src/decoder/mod.rs +++ b/src/decoder/mod.rs @@ -1029,16 +1029,16 @@ impl Decoder { fn invert_colors(buf: &mut DecodingBuffer, color_type: ColorType) { match (color_type, buf) { (ColorType::Gray(64), DecodingBuffer::U64(ref mut buffer)) => { - Self::invert_colors_unsigned(buffer, u64::MAX); + Self::invert_colors_unsigned(buffer, 0xffff_ffff_ffff_ffff); } (ColorType::Gray(32), DecodingBuffer::U32(ref mut buffer)) => { - Self::invert_colors_unsigned(buffer, u32::MAX); + Self::invert_colors_unsigned(buffer, 0xffff_ffff); } (ColorType::Gray(16), DecodingBuffer::U16(ref mut buffer)) => { - Self::invert_colors_unsigned(buffer, u16::MAX); + Self::invert_colors_unsigned(buffer, 0xffff); } (ColorType::Gray(n), DecodingBuffer::U8(ref mut buffer)) if n <= 8 => { - Self::invert_colors_unsigned(buffer, u8::MAX); + Self::invert_colors_unsigned(buffer, 0xff); } (ColorType::Gray(32), DecodingBuffer::F32(ref mut buffer)) => { Self::invert_colors_fp(buffer, 1.0); From b7c4f668aefcc8a9c355f5da99a1b74ac11417c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kr=C3=A1l?= Date: Sun, 16 May 2021 12:00:15 +0200 Subject: [PATCH 6/7] remove redundant subrange and outdated comments --- src/decoder/mod.rs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/decoder/mod.rs b/src/decoder/mod.rs index 42c52e0..43dccb0 100644 --- a/src/decoder/mod.rs +++ b/src/decoder/mod.rs @@ -1087,7 +1087,6 @@ impl Decoder { } /// Decompresses the strip into the supplied buffer. - /// Returns the number of bytes read. fn expand_strip<'a>( &mut self, mut buffer: DecodingBuffer<'a>, @@ -1143,19 +1142,16 @@ impl Decoder { } } - let len = buffer.len(); - Self::fix_endianness(&mut buffer.subrange(0..len), byte_order); + Self::fix_endianness(&mut buffer, byte_order); - // Invert colors if necessary. if self.photometric_interpretation == PhotometricInterpretation::WhiteIsZero { - Self::invert_colors(&mut buffer.subrange(0..len), color_type); + Self::invert_colors(&mut buffer, color_type); } Ok(()) } /// Decompresses the tile into the supplied buffer. - /// Returns the number of bytes read. fn expand_tile<'a>( &mut self, mut buffer: DecodingBuffer<'a>, @@ -1214,7 +1210,6 @@ impl Decoder { Self::fix_endianness(&mut buffer.subrange(row_start..row_end), self.byte_order); - // Invert colors if necessary. if self.photometric_interpretation == PhotometricInterpretation::WhiteIsZero { Self::invert_colors(&mut buffer.subrange(row_start..row_end), color_type); } From 4dc7c2a986a15c129aecccdea334108d8e1df06b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kr=C3=A1l?= Date: Tue, 18 May 2021 18:31:17 +0200 Subject: [PATCH 7/7] add comment in expand_strip() --- src/decoder/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/decoder/mod.rs b/src/decoder/mod.rs index 43dccb0..173c4d5 100644 --- a/src/decoder/mod.rs +++ b/src/decoder/mod.rs @@ -1136,7 +1136,10 @@ impl Decoder { DecodingBuffer::F64(buf) => bytecast::f64_as_ne_mut_bytes(buf), }; + // Note that writing updates the slice to point to the yet unwritten part. std::io::copy(&mut reader.take(buffer.len() as u64), &mut buffer)?; + + // If less than the expected amount of bytes was read, set the remaining data to 0. for b in buffer { *b = 0; }