Merge pull request #49 from Masterchef365/deflate

Old-style DEFLATE compression support
This commit is contained in:
HeroicKatora authored and GitHub committed 2019-11-01 00:42:18 +01:00
commit 6aea7b33c1
5 files changed
+78 -2

No files matched your search

+7 -1
View File
@@ -7,7 +7,7 @@ use {ColorType, TiffError, TiffFormatError, TiffResult, TiffUnsupportedError};
use self::ifd::Directory;
use self::stream::{ByteOrder, EndianReader, LZWReader, PackBitsReader, SmartReader};
use self::stream::{ByteOrder, EndianReader, LZWReader, DeflateReader, PackBitsReader, SmartReader};
pub mod ifd;
mod stream;
@@ -100,6 +100,8 @@ pub enum CompressionMethod {
Fax4 = 4,
LZW = 5,
JPEG = 6,
Deflate = 8,
OldDeflate = 0x80B2,
PackBits = 0x8005,
}
@@ -582,6 +584,10 @@ impl<R: Read + Seek> Decoder<R> {
)?;
(bytes, Box::new(reader))
}
CompressionMethod::OldDeflate => {
let (bytes, reader) = DeflateReader::new(&mut self.reader, max_uncompressed_length)?;
(bytes, Box::new(reader))
}
method => {
return Err(TiffError::UnsupportedError(
TiffUnsupportedError::UnsupportedCompressionMethod(method),