Commit Graph

234 Commits

Author SHA1 Message Date
lifning 312227220e allow LZW to be done at Frame time rather than Encoder time 2022-07-01 22:36:12 -07:00
HeroicKatora c4f91b5286
Merge pull request #132 from image-rs/release-0.11.4
Release notes for version 0.11.4
2022-06-27 08:26:24 +02:00
Andreas Molzer e070cfb4f4 Release notes for version 0.11.4 2022-06-26 14:20:05 +02:00
HeroicKatora ed1d8d7799
Merge pull request #131 from image-rs/issue-130-superfluous-data
Fix: stale data across next frame
2022-06-25 18:35:29 +02:00
Andreas Molzer cb3b0e39e5 Fix: stale data across next frame
This fixes a decoding error where superfluous image data bytes decoded
in one frame are still present for the next frame. The result is a
pretty corrupt image, if the next frame has a local color matrix then it
appears pretty glitchy, too.
2022-06-25 18:18:41 +02:00
HeroicKatora f05cd52226
Merge pull request #127 from jdm/patch-1
Update minimum weezl version.
2022-03-31 10:02:45 +02:00
Josh Matthews a41613dfe7
Update minimum weezl version. 2022-03-30 22:47:34 -04:00
HeroicKatora 0bd83c5ee4
Merge pull request #126 from andylizi/get-writer-ref
Add `Encoder::{get_ref, get_mut}`
2022-02-20 18:47:08 +01:00
andylizi e03205c4b3
Add warning for `Encoder::get_mut` docs 2022-02-20 08:43:05 +08:00
andylizi 39c2a017a4
Add `Encoder::{get_ref, get_mut}` 2022-02-19 11:16:55 +08:00
Jonathan Behrens 94a26746cc
Merge pull request #124 from andylizi/fix-tests-windows
Make tests work on Windows
2022-02-10 12:30:25 -05:00
andylizi 69da38496e
Make tests work on Windows 2022-02-10 14:38:46 +08:00
HeroicKatora a7449af65c
Merge pull request #122 from image-rs/regression-test-117
Add regression test for issue 117
2021-12-23 16:27:39 +01:00
Andreas Molzer 7f84847a31 Add regression test for issue 117 2021-12-23 16:22:32 +01:00
HeroicKatora fca7964771
Merge pull request #116 from image-rs/fuzz
Add fuzzing code for cargo-fuzz
2021-12-23 16:19:10 +01:00
Andreas Molzer 34a56ecd61 Add explicit stall test 2021-12-23 16:07:03 +01:00
Andreas Molzer 64293103e2 Avoid allocation in empty max_bytes case 2021-12-23 14:31:24 +01:00
Andreas Molzer 0de672cee5 Fix infinite loop during decoding
In frames with empty image data it was possible to trigger a condition
where decoding would be stuck, neither reading any part of the data nor
producing any LZW decoded data. The outer loop expects to make progress
and odes not have any alternative stop condition. This was an infinite
blocking loop.
2021-12-23 14:23:16 +01:00
Andreas Molzer 28199644ee Add fuzz code for decode 2021-12-23 14:23:16 +01:00
Andreas Molzer 01e673f09b Add fuzzing code for cargo-fuzz 2021-12-23 14:23:16 +01:00
HeroicKatora 64b1b182ef
Merge pull request #121 from fintelia/safe-into-inner
Implement Encoder::into_inner without unsafe
2021-12-23 14:20:04 +01:00
Jonathan Behrens 706ba43b5a Implement Encoder::into_inner without unsafe 2021-12-18 13:07:48 -05:00
HeroicKatora 167bc0f856
Merge pull request #120 from kornelski/writerback
Ability to recover the writer
2021-12-18 17:26:56 +01:00
Kornel 605d1cb1e6 Ability to recover the writer 2021-12-17 16:16:37 +00:00
HeroicKatora c69b66b69f
Merge pull request #119 from foopub/master
Benchmark for `common::Frame::from_rgba_speed`
2021-10-19 19:22:52 +02:00
foopub 14467b6319
Dependency in the wrong place 2021-10-19 09:58:07 +01:00
foo b832a3ddbd A bad sample image 2021-10-19 01:36:19 +01:00
foo 0bb84a5944 Frame from rgb(a) bench 2021-10-19 01:22:38 +01:00
HeroicKatora a319c9996e
Merge pull request #118 from kornelski/patch-1
Crates.io release
2021-10-14 18:22:11 +02:00
Andreas Molzer 1df06bb047 Add changelog for 0.11.3 2021-10-14 18:11:05 +02:00
Kornel f71ccf3e1a
Bump version 2021-10-14 14:28:18 +01:00
HeroicKatora a9f6ab5906
Merge pull request #115 from image-rs/version-and-polish
Version and polish
2021-09-18 16:24:37 +02:00
Andreas Molzer 39b91c7233 Fix typos spotted by review 2021-09-18 15:53:02 +02:00
Andreas Molzer 5d357863eb Change check example to be permissive 2021-09-18 01:12:11 +02:00
Andreas Molzer 7a6f443fb0 Polish documentation of MemoryLimits 2021-09-17 22:10:15 +02:00
Andreas Molzer 74fa5fe5a9 Make version number available in interface 2021-09-17 22:05:30 +02:00
Andreas Molzer b893af5fa8 Add a simple decode-check program 2021-09-17 21:59:47 +02:00
Jonathan Behrens 8cae31cf6e
Merge pull request #114 from andylizi/reuse-buffer
Avoid allocating 16MB buffer for every frame
2021-09-13 15:13:53 -04:00
andylizi b6bba74e81
Switch to `into_vec` in LZW encoding for better performance 2021-09-14 01:01:00 +08:00
andylizi ffcc3d3106
Avoid allocating 16MB buffer for every frame 2021-09-13 23:22:15 +08:00
HeroicKatora 5410cb32f6
Merge pull request #112 from okaneco/decode-block-uknown-blocks
Fix DecodeSubBlock bytes returned, add allow_unknown_blocks decoding option
2021-09-05 01:15:32 +02:00
HeroicKatora a645a35303
Merge pull request #111 from okaneco/rgba_speed_zip_panic
Fix panic for Frame::from_rgb* methods when there are exactly 256 colors
2021-09-05 01:14:40 +02:00
okaneco 3f42ecc317 Fix DecodeSubBlock bytes returned, add allow_unknown blocks decoding option
`StreamingDecoder::next_state` could return a byte offset that was
larger than the current buffer. This could result in a panic on the
next loop iteration while indexing into the buffer with the offset.

Add an option to DecodeOptions for allowing the processing of unknown
blocks in `BlockStart`. Previously, all unknown blocks would return an
error if the `BlockStart` was not `Image`, `Extension`, or `Trailer`.
2021-09-04 08:35:33 -04:00
okaneco 0215cf2210 Fix panic for Frame::from_rgb* methods when there are exactly 256 colors
- Change u8 zip iterator to use `0..=255` instead of `0..`
- Add test

The creation of the `colors_lookup` hashmap panics in debug when it
bypasses the NeuQuant algorithm and has exactly 256 colors.
2021-09-04 04:04:11 -04:00
Jonathan Behrens 033353951d
Merge pull request #110 from simon-frankau/exact-quantize
Add support for exact quantisation of images with <= 256 colors
2021-08-14 17:02:40 -04:00
Simon Frankau 8eed179ed7 Try inlining quantisation code 2021-07-27 14:52:01 +01:00
Simon Frankau f1e82c6f07 Improve matches based on code review 2021-07-27 13:06:28 +01:00
Simon Frankau d8aa21241d Add support for exact quantisation of images with <= 256 colors. Closes #109
We detect if an image has <= 256 colors, and if so bypass NeuQuant and
generate a palette directly from those colors.
2021-07-22 00:47:53 +01:00
Jonathan Behrens a4477de006
Merge pull request #105 from okaneco/frame-cleanup
Avoid reassignments to Frame fields after initializing with default
2021-06-06 13:29:49 -04:00
okaneco aef41862ef Avoid reassignments to Frame fields after initializing with default
Use chunks_exact in Frame::from_[rgb|rgba]_speed
Use [copy|extend]_from_slice instead of manual operations
Correct overlapping range patterns in match statement
Remove unnecessary semicolon in benchmark
Remove unnecessary & in if let statement
Remove unnecessary statement in reader::fill_reader
2021-05-01 13:43:09 -04:00