Compare commits

...
4 Commits
Author SHA1 Message Date
Aurelia Molzer cbcf6b97d4 Bump version number 0.10.1 2025-08-25 23:21:34 +02:00
Sergey "Shnatsel" Davidoff 19c811e86d populate changelog for 0.10.1 2025-08-25 15:20:04 +01:00
Aurelia Molzer 50be15e356 Merge pull request #290 from jakubadamw/nightly-compilation-warnings
Address compilation warnings in the Nightly channel of Rust
2025-08-14 16:50:22 +00:00
Jacob Adam 718f2cb455 Address compilation warnings in the Nightly channel of Rust. 2025-08-14 17:45:21 +01:00
5 changed files with 49 additions and 32 deletions

No files matched your search

+17
View File
@@ -1,3 +1,20 @@
# Version 0.10.1
New features:
- Added a dedicated `Directory` type (#277)
- Expose methods related to `Directory` publicly (#278)
- Implement writing directories (#281, #283)
- Add ICC (color profile) to the set of known tags (#287)
- Added `Decoder.inner()` to access the underlying reader (#289)
- Added methods for reading into a pre-allocated byte buffer (#285)
Changes:
- No longer perform color conversion when decoding embedded JPEG. This fixes decoding for JPEG images with alpha channel. (#274)
- More lenient LZW decoding to match libtiff (#231)
Fixes:
- Fixed seeking multiple times in a row (#279)
# Version 0.10.0
New features:
+2 -2
View File
@@ -1,6 +1,6 @@
[package]
name = "tiff"
version = "0.10.0"
version = "0.10.1"
edition = "2021"
resolver = "2"
@@ -28,7 +28,7 @@ zune-jpeg = { version = "0.4.17", optional = true }
[dev-dependencies]
criterion = "0.3.1"
# We may already depend on this via flate2
crc32fast = "1"
crc32fast = "1.5"
[features]
default = ["deflate", "jpeg", "lzw"]
+1 -1
View File
@@ -138,7 +138,7 @@ impl DecodingResult {
}
}
pub fn as_buffer(&mut self, start: usize) -> DecodingBuffer {
pub fn as_buffer(&mut self, start: usize) -> DecodingBuffer<'_> {
match *self {
DecodingResult::U8(ref mut buf) => DecodingBuffer::U8(&mut buf[start..]),
DecodingResult::U16(ref mut buf) => DecodingBuffer::U16(&mut buf[start..]),
+1 -1
View File
@@ -198,7 +198,7 @@ impl<W: Write + Seek, K: TiffKind> TiffEncoder<W, K> {
&mut self,
width: u32,
height: u32,
) -> TiffResult<ImageEncoder<W, C, K>> {
) -> TiffResult<ImageEncoder<'_, W, C, K>> {
let encoder = Self::chain_directory(&mut self.writer, &mut self.last_ifd_chain)?;
ImageEncoder::new(encoder, width, height, self.compression, self.predictor)
}
+28 -28
View File
@@ -15,7 +15,7 @@ pub trait TiffValue {
/// Access this value as an contiguous sequence of bytes.
/// If their is no trivial representation, allocate it on the heap.
fn data(&self) -> Cow<[u8]>;
fn data(&self) -> Cow<'_, [u8]>;
/// Write this value to a TiffWriter.
/// While the default implementation will work in all cases, it may require unnecessary allocations.
@@ -34,7 +34,7 @@ impl TiffValue for [u8] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(self)
}
}
@@ -47,7 +47,7 @@ impl TiffValue for [i8] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::i8_as_ne_bytes(self))
}
}
@@ -60,7 +60,7 @@ impl TiffValue for [u16] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::u16_as_ne_bytes(self))
}
}
@@ -73,7 +73,7 @@ impl TiffValue for [i16] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::i16_as_ne_bytes(self))
}
}
@@ -86,7 +86,7 @@ impl TiffValue for [u32] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::u32_as_ne_bytes(self))
}
}
@@ -99,7 +99,7 @@ impl TiffValue for [i32] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::i32_as_ne_bytes(self))
}
}
@@ -112,7 +112,7 @@ impl TiffValue for [u64] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::u64_as_ne_bytes(self))
}
}
@@ -125,7 +125,7 @@ impl TiffValue for [i64] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::i64_as_ne_bytes(self))
}
}
@@ -138,7 +138,7 @@ impl TiffValue for [f32] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
// We write using native endian so this should be safe
Cow::Borrowed(bytecast::f32_as_ne_bytes(self))
}
@@ -152,7 +152,7 @@ impl TiffValue for [f64] {
self.len()
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
// We write using native endian so this should be safe
Cow::Borrowed(bytecast::f64_as_ne_bytes(self))
}
@@ -171,7 +171,7 @@ impl TiffValue for u8 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(from_ref(self))
}
}
@@ -189,7 +189,7 @@ impl TiffValue for i8 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::i8_as_ne_bytes(from_ref(self)))
}
}
@@ -207,7 +207,7 @@ impl TiffValue for u16 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::u16_as_ne_bytes(from_ref(self)))
}
}
@@ -225,7 +225,7 @@ impl TiffValue for i16 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::i16_as_ne_bytes(from_ref(self)))
}
}
@@ -243,7 +243,7 @@ impl TiffValue for u32 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::u32_as_ne_bytes(from_ref(self)))
}
}
@@ -261,7 +261,7 @@ impl TiffValue for i32 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::i32_as_ne_bytes(from_ref(self)))
}
}
@@ -279,7 +279,7 @@ impl TiffValue for u64 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::u64_as_ne_bytes(from_ref(self)))
}
}
@@ -297,7 +297,7 @@ impl TiffValue for i64 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::i64_as_ne_bytes(from_ref(self)))
}
}
@@ -315,7 +315,7 @@ impl TiffValue for f32 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::f32_as_ne_bytes(from_ref(self)))
}
}
@@ -333,7 +333,7 @@ impl TiffValue for f64 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::f64_as_ne_bytes(from_ref(self)))
}
}
@@ -351,7 +351,7 @@ impl TiffValue for Ifd {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::u32_as_ne_bytes(from_ref(&self.0)))
}
}
@@ -369,7 +369,7 @@ impl TiffValue for Ifd8 {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Borrowed(bytecast::u64_as_ne_bytes(from_ref(&self.0)))
}
}
@@ -388,7 +388,7 @@ impl TiffValue for Rational {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Owned({
let first_dword = bytecast::u32_as_ne_bytes(from_ref(&self.n));
let second_dword = bytecast::u32_as_ne_bytes(from_ref(&self.d));
@@ -411,7 +411,7 @@ impl TiffValue for SRational {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Owned({
let first_dword = bytecast::i32_as_ne_bytes(from_ref(&self.n));
let second_dword = bytecast::i32_as_ne_bytes(from_ref(&self.d));
@@ -438,7 +438,7 @@ impl TiffValue for str {
}
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
Cow::Owned({
if self.is_ascii() && !self.bytes().any(|b| b == 0) {
let bytes: &[u8] = self.as_bytes();
@@ -462,7 +462,7 @@ impl<T: TiffValue + ?Sized> TiffValue for &'_ T {
(*self).write(writer)
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
T::data(self)
}
}
@@ -484,7 +484,7 @@ macro_rules! impl_tiff_value_for_contiguous_sequence {
Ok(())
}
fn data(&self) -> Cow<[u8]> {
fn data(&self) -> Cow<'_, [u8]> {
let mut buf: Vec<u8> = Vec::with_capacity(Self::BYTE_LEN as usize * self.len());
for x in self {
buf.extend_from_slice(&x.data());