Jonathan Behrens
f25530adec
Unify expand_strip and expand_tile
2022-05-02 19:37:00 -07:00
Alan Race
a133056287
Removed passing of PhotometricInterpretation to create_reader
...
as this is now handled for JPEG globally
2022-04-30 14:55:52 +02:00
Alan Race
ce00bb5a28
Removed old code
2022-04-30 14:35:33 +02:00
Alan Race
623a3d957d
Avoid cloning jpeg_tables and instead pass Arc<Vec<u8>>
2022-04-30 14:33:12 +02:00
Alan Race
eeb79ee07a
Reduce number of clones when processing jpeg data
2022-04-27 14:46:52 +02:00
Alan Race
592405268e
Added ability to decompress tiled jpeg files
2022-04-27 14:05:41 +02:00
Jonathan Behrens
4f46bacfda
Fixes to PackBitsReader
2022-04-16 16:10:09 -04:00
Jonathan Behrens
b286457337
Remove dbg! print
2022-04-16 15:52:09 -04:00
Jonathan Behrens
7881291032
Make PackBitsReader incrementally decompress output
2022-04-15 12:25:24 -04:00
Jonathan Behrens
ff33343372
Fix formatting
2022-04-15 11:28:56 -04:00
Jonathan Behrens
c910ef8534
Remove redundant limit on LZWReader output length
2022-04-15 10:02:33 -04:00
Jonathan Behrens
1063d6dd27
Have LZWReader internally use a BufReader<Take<R>>
2022-04-15 09:49:18 -04:00
Jonathan Behrens
9394f6d043
Make LZWReader incrementally decompress input
2022-04-14 21:00:36 -04:00
Jonathan Behrens
01df985ef8
Fix formatting
2022-01-12 20:13:23 -05:00
Jonathan Behrens
2d10cff97e
Reading fields shouldn't need the entire Decoder
2022-01-12 19:50:06 -05:00
Jonathan Behrens
e9aa39d895
Initialize Decoder in new instead of init
2022-01-12 19:45:41 -05:00
5225225
65a1fbe8ae
Test for short JPEG tag
2021-05-29 22:12:35 +01:00
5225225
03b6ed413b
Fix out of bounds subtraction with invalid JPEG table
2021-05-29 22:12:35 +01:00
Ingvar Stepanyan
a6fb855121
Improve deflate support
...
- Switch to streaming decompression via `flate2`. Aside from performance improvements and lower RAM consumption, this fixes a bug where `max_uncompressed_length` was precalculated for a single tile but then used as a hard limit on the whole data, failing to decompress any tiled images.
- Deprecate `InflateError` - this was used for wrapping `miniz_oxide` raw status, but `flate2` already reports them as `io::Error` instead. This makes errors from both Lzw and Deflate modes more consistent - they're all now just `io::Error`.
- Add support for new `Deflate` tag in addition to `OldDeflate` - format-wise it's same Zlib, and on practice decodes successfully with the same underlying code.
- Slightly simplify partial reads from the `Reader` by using the `std::io::copy` helper instead of doing it manually.
Fixes #131 .
2021-05-08 15:34:14 +01:00
HeroicKatora
a43aa1fbc7
Merge pull request #126 from fintelia/better-decompress
...
Simplify de-compression logic
2021-04-12 18:36:07 +02:00
Jonathan Behrens
201b95f749
Improve expand_strip and remove read_{u16, u32, ...}_into
2021-04-10 21:34:57 -04:00
Jonathan Behrens
60c6e0cd90
Simplify de-compression logic
2021-04-10 14:49:04 -04:00
Kal Conley
d086e289dd
Implement missing tag types and signed 64-bit support
2021-03-17 01:24:32 +01:00
Vadim Dyadkin
3de87a7001
Open tif files containing i32 arrays
2021-02-20 18:25:29 +01:00
HagaiHargil
aa13e31894
Initial i8 support
2020-12-13 11:37:56 +02:00
HagaiHargil
9788085786
Int16 support
2020-12-08 13:33:25 +02:00
Andreas Molzer
4d8c64bf1e
Fix lzw decoding stopping short of full decode
...
When the required amount of data was just a tiny bit larger than full a
page size (one buffer increment), the decoder would stop since all
compressed data had been read. However, the lzw decoder contains a small
internal bit buffer for code decoding. That is, some remaining bytes had
been retained and were still left to be decoded.
2020-12-05 14:57:28 +01:00
ruffson
d00ab0cc61
Fix formatting
2020-09-26 17:22:59 +02:00
ruffson
6353f71e28
Satisfy the borrow checker
2020-09-26 17:14:17 +02:00
ruffson
cb5319c426
Deal with empty jpeg_tables
2020-09-26 14:35:06 +02:00
ruffson
53aefea6a4
Fix typos
2020-09-26 14:14:09 +02:00
ruffson
41050c14ed
Change accesibility of JpegReader
2020-09-26 12:38:02 +02:00
ruffson
a510b03e1c
Apply auto-format to modified files
2020-09-25 19:47:33 +02:00
ruffson
2cb57a4d04
Add initial support for modern JPEG compression
...
Some things still need to be done:
- Check RGB images
- Check small images
- Check huffman-only jpeg tables
- Check empty jpeg tables
- Add tests
2020-09-25 19:42:29 +02:00
Andreas Molzer
bf24b3f935
Do a clippy pass
2020-09-12 01:15:08 +02:00
Andreas Molzer
49b1f78ce5
Replace lzw decoder with weezl
2020-09-05 21:57:51 +02:00
Andreas Molzer
44c75a66ab
Merge remote-tracking branch 'origin/master' into features/32-bit-float-samples
2020-08-31 20:50:16 +02:00
Andreas Molzer
99c038c929
Move all bytecast unsafety to one module
2020-08-16 16:24:47 +02:00
наб
b853d841f3
Drop byteorder dependency
...
Ref: https://github.com/image-rs/image/issues/1000
2020-08-14 16:52:51 +02:00
Andrew Champion
c2084835fa
Add support for IEEEFP Gray/RGB/RGBA/CMYK(64) decoding
2020-02-10 13:21:16 +00:00
Andrew Champion
bbc49291e4
Add support for IEEEFP Gray(32) decoding
2020-02-06 18:40:41 +00:00
Andrew Champion
f4e985e0bd
Support 64-bit grayscale decoding
2019-12-10 20:18:53 +00:00
Andrew Champion
fca4e1f88a
Support 32-bit grayscale decoding
2019-12-10 20:18:23 +00:00
Masterchef365
f8d4b57120
Change implementation details for InflateError, add uncompressed cap
2019-10-04 18:52:39 -07:00
Masterchef365
6f9f2adfbf
Improved error messages for inflate decompression
2019-10-02 21:06:11 -07:00
Masterchef365
205626bd62
Switch to miniz_oxide crate for DEFLATE decompression
2019-10-02 18:51:47 -07:00
Masterchef365
ce73d39d57
Add old-style DEFLATE support
2019-10-02 18:51:07 -07:00
Yuki Okushi
ea19f0f686
Remove try! macros
2019-08-29 19:10:27 +09:00
Dustin Thomson
30eb8487a6
Signed value support
...
Add support for SBYTE, SSHORT, SLONG, SRATIONAL as per the Tiff 6.0 spec
Add support for multiple BYTE
2019-08-14 21:22:56 -06:00
Atul Bhosale
522fbd1a69
Format code using 'cargo fmt'
2019-04-18 00:04:43 +05:30