A. Molzer
f6e2aeffe5
Encode values immediately
...
This currently avoids buffering the collection, but not buffering them
individually where we still format it into a byte vector.
The main drive here is making the DirectoryEncoder less dependent on the
values. That is, it should be concerned with the Entry representation of
values only. A few decoders expect all values to strictly follow the
image directory and the data layout of such files should be controllable
by the user. This could be achieved by encoding dummy entries which are
later corrected once the actual item is known by seeking back and
writing the directory anew.
By no longer assuming values to be available on finishing a directory we
also prepare an interface that encodes an existing directory.
2025-07-13 03:06:40 +02:00
A. Molzer
525bb2b9b1
Simplify encoder writing of dictionary
2025-07-13 02:22:17 +02:00
A. Molzer
54f733eaa3
Allow non-chained directories in writer
...
This is just the implementation details. In the DirectoryEncoder we did
not differentiate between different directories that should go into the
main image chain and other directories. This is now possible by storing
the prior offset as an explicit Option<NonZeroU64>.
Additionally, the whole encoder did not allow any intermediate data
between its last directory and new directories on the chain. The offset
of the relevant `next` field was not stored explicitly but derived from
the current stream position at the moment of starting the directory.
This would not allow any padding data or data written outside the
returned `DirectoryEncoder` object.
This relaxed both requirements by turning the offsets into attributes.
2025-07-13 02:22:17 +02:00
Jonathan Behrens
d7be2a7b67
Make the Compressor enum non-exhaustive ( #272 )
2025-06-15 18:31:03 -07:00
Emma
29b71ff597
add CMYKA ( #208 )
2025-06-15 16:38:22 -07:00
Jonathan Behrens
83e6d64751
Create feature flags for more compression algorithms ( #270 )
2025-06-15 15:50:14 -07:00
Jean-Baptiste Skutnik
e28ad564d9
Add horizontal predictor support ( #240 )
2024-09-23 19:45:45 +01:00
Jonathan Behrens
90ae5b8e54
Fix warnings ( #225 )
2024-03-23 13:51:28 -07:00
Jonathan Behrens
8ec91b64f6
Cargo fmt
2023-08-20 13:33:35 -07:00
Jonathan Behrens
60f866c119
A bunch of clippy fixes
2023-08-20 13:32:08 -07:00
Kurt Kühnert
da07c0f4f5
added round trip test
...
fixed ci
added colortype
2023-01-05 09:34:54 +01:00
Jonathan Behrens
907bbee576
cargo fmt
2022-09-05 12:54:21 -07:00
Jonathan Behrens
fc0dafcde2
Change error kind
2022-09-05 12:45:22 -07:00
Jonathan Behrens
945a02d1e1
Format
2022-09-05 12:44:42 -07:00
Jonathan Behrens
ef3294d1fe
Return an error for zero-size images
2022-09-05 12:44:42 -07:00
Alan Race
802949f6e1
Removed ChunkInfo and added additional functions on decoder
2022-07-18 17:15:44 +02:00
Pretorer
6f89033fd3
moved namespace qualifier
2022-01-11 15:51:34 +01:00
Pretorer
9df18a1674
fixed deflate and packbits
2022-01-11 15:43:00 +01:00
Pretorer
1d8cbbc6a1
add Packbits compression
2022-01-10 11:57:59 +01:00
Pretorer
9f1e3d7a89
moved compression into TiffWriter
2022-01-10 11:55:08 +01:00
Christopher Gundler
30bf508983
Avoid allocations
2021-12-22 11:10:13 +01:00
Christopher Gundler
99b2aa9b3a
Add TIFF compression and corresponding tests
2021-12-21 16:47:11 +01:00
Jonathan Behrens
be0619d6a1
Support encoding signed integer formats
2021-06-20 14:33:13 -04:00
Philipp Oppermann
47dfa0aa3e
Merge branch 'master' into encode-bigtiff
2021-04-12 11:34:41 +02:00
Philipp Oppermann
59d0b7389d
Run rustfmt
2021-03-24 11:11:56 +01:00
Philipp Oppermann
0ac444b63f
Improve documentation
2021-03-24 11:10:42 +01:00
Philipp Oppermann
ce1ee6776f
Move TiffValue trait to separate module
2021-03-24 10:47:23 +01:00
Philipp Oppermann
29a020e5ec
Clarify TODO
2021-03-23 14:44:39 +01:00
Philipp Oppermann
9021985477
Provide documentation for TiffKind helper trait
2021-03-23 14:42:05 +01:00
Philipp Oppermann
dc04282290
Fix: Use the correctly parametrized directory and image encoder types
2021-03-23 14:29:45 +01:00
Philipp Oppermann
4cfed1c7b1
Make encoders generic to support BigTiff too
2021-03-23 13:49:54 +01:00
Philipp Oppermann
745ed62808
Change associated const types of TiffValue to usize/u8
...
This allows us to reuse the trait for BigTiff encoding. It also makes things safer for normal Tiff since we properly error on 32 bit overflows now.
2021-03-23 10:56:33 +01:00
Kal Conley
d086e289dd
Implement missing tag types and signed 64-bit support
2021-03-17 01:24:32 +01:00
Robert Wassens
95f0a34bcc
Update comment
2020-12-07 12:14:36 +01:00
Robert Wassens
3e042df438
Set default strip size to 1MB
2020-12-07 11:44:21 +01:00
Robert Wassens
5346a441ae
Processed review comment
2020-12-07 11:43:09 +01:00
Robert Wassens
7da8f01f75
make strip size configurable
2020-12-05 01:39:37 +01:00
Robert Wassens
1b38ff9410
strip size = image height
2020-12-04 12:45:46 +01:00
Andreas Molzer
8ab9d30eff
Convert to edition 2018
...
Notably, This enables NLL even on older compilers such as 1.34.
2020-10-31 20:13:30 +01:00
Andreas Molzer
7b41c823e9
Some slight manual touch up where style was bad
2020-09-12 01:15:45 +02:00
Andreas Molzer
bf24b3f935
Do a clippy pass
2020-09-12 01:15:08 +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
Etienne Prothon
5f48444fa0
Merge branch 'master' of github.com:Farkal/image-tiff into features/32-bit-float-samples
2020-08-04 16:43:01 +02:00
Farkal
ba1daa18b2
Allow custom encoding process ( #84 )
...
Simplify encoding of tags
2020-07-27 11:29:09 +02:00
Andrew Champion
ae4ae9c36e
Fix capitalization case of sample format enum
2020-02-10 13:21:16 +00:00
Andrew Champion
8d4bdce7aa
Add support for IEEEFP 32 and 64 bit encoding
2020-02-10 13:21:16 +00:00
Andrew Champion
a41e33e42a
Fix wrong inner types for color types
2020-02-10 13:21:16 +00:00
Andrew Champion
ec0477125f
Tags: restore primitive conversions as inherent methods
2020-02-01 18:25:05 +00:00