Commit graph

401 commits

Author SHA1 Message Date
Josh Holmer
9408a50b1b Version 2.2.2 2019-07-03 19:21:21 -04:00
Josh Holmer
b2364d2398 Update dependencies 2019-07-03 19:14:42 -04:00
Kamal Ahmad
34ee78dbbc Preallocate memory in reduced_alpha_to_up (#180) 2019-06-27 13:44:49 -04:00
Felix Hanau
56b94542a6 Fix decoding interlaced images with height or width <= 2 (#175) 2019-06-27 13:44:34 -04:00
Felix Hanau
c09e8f6d12 Make filter, zlib level and strategy deterministic (#179) 2019-06-27 10:05:35 -04:00
Hugo Locurcio
5b5aeaa683 Enable link-time optimization for release builds (#177)
This creates faster and smaller binaries, at the cost of longer
build times.
2019-06-26 09:09:26 -04:00
Josh Holmer
c60bd82da7 Add test case for #171 2019-06-20 14:07:47 -04:00
Josh Holmer
9d8ce5e4ee Disable large image test for 32-bit systems
Closes #176
2019-06-20 13:38:59 -04:00
Josh Holmer
458e9f64a7 Fix --strip safe which was broken in 5b1121c9d 2019-06-19 15:27:43 -04:00
Josh Holmer
3809421de7 Use image 0.21.2 with bugfixes from crates.io 2019-06-19 15:21:41 -04:00
Josh Holmer
5b1121c9dd Make order of chunks deterministic by sorting chunks
Closes #174
2019-06-18 13:29:17 -04:00
Felix Hanau
5dcfe44ccd Fix info message and typos (#172) 2019-06-18 13:06:37 -04:00
Felix Hanau
cc290c0bdb Fixes for grey scale reduction (#171) 2019-06-18 13:04:26 -04:00
Josh Holmer
9c6190c1ff Version 2.2.1 2019-03-26 14:19:34 -04:00
Josh Holmer
7bd7c0cfc9 Bump image crate to handle large images
Closes #167 and #168
2019-03-26 14:14:01 -04:00
Josh Holmer
b18414ba8c
Fix display of benchmarks in README (#165) 2019-02-04 10:03:58 -05:00
Josh Holmer
6430166ec9 Add to changelog as well [ci skip] 2019-02-01 17:59:15 -05:00
Josh Holmer
c7da7f2073 Bump minimum supported Rust version 2019-02-01 17:58:24 -05:00
Josh Holmer
bd6e7dbbb1 Version 2.2.0 2019-02-01 17:30:16 -05:00
Josh Holmer
d86bc80f43 Prepare for next release 2019-02-01 17:27:03 -05:00
Kornel
485a127cf6 Remove Mutex from evaluation loop (#163) 2019-02-01 17:03:25 -05:00
Josh Holmer
c92b03d908 Remove unused features 2019-02-01 16:42:00 -05:00
Kornel
dad6230cf1 Check timeout more often during compression (#160) 2019-02-01 16:30:47 -05:00
Kornel
33890cf0fd Fake Rayon (#162)
Dummy implementation of Rayon's traits to avoid `#[cfg()]` and duplicated non-parallel code.
2019-01-28 13:35:42 -05:00
Kornel
0d4a9e06d6 Avoid using excessive number of threads (#161) 2019-01-27 04:15:41 -05:00
Kornel
9af874d21b Make reductions return a new uncompressed image (#158)
* Fix verbose message

* No cloning when restoring original data

* Make reductions return a new uncompressed image

Partially fixes #145

* Async reduction evaluator

* Assert

* Faster bit depth check

* Also try 4-bit depth for small-depth images

* Skip test when using miniz

* Ensure palette is trimmed after depth reduction

Fixes #159

* Fudge factor for reductions to prefer better reductions even if gzip estimation says otherwise
2019-01-27 03:22:49 -05:00
Kornel
55d85df9fc Non-self-mutable reductions (#154)
* Move reductions to a module. Make copy instead of changing in-place.

* Alpha reductions

* Immutable color reductions

* Immutable interlace reductions
2019-01-12 05:07:57 -05:00
Josh Holmer
d91fc890cd 2.1.8 2018-12-02 00:14:43 -05:00
Josh Holmer
918c52eed8 Fix more nonstandard sBIT headers
Closes #153
2018-12-02 00:13:30 -05:00
Josh Holmer
7594ec632b Add test file 2018-12-01 22:32:29 -05:00
Josh Holmer
565d08ed72 Version 2.1.7 2018-11-27 22:34:58 -05:00
Joshua Holmer
1305b5cf17 Fix clippy lints and run rustfmt 2018-11-26 13:41:14 -05:00
Joshua Holmer
041c433ccb Handle non-standard sBIT headers
Closes #141
2018-11-26 13:10:21 -05:00
Kornel
ff7a9547c3 Nicer wrapper for cfzlib (#149) 2018-11-25 03:29:30 -05:00
Kornel
602cd6991e 80× faster palette reduction (#150)
* Faster palette reduction

* Simplified iterator

* Mutable scanline iterator
2018-11-25 01:31:43 -05:00
Kornel
686adcdebd Optimize RGB/A to palette conversion (#148) 2018-11-22 21:52:02 -05:00
Kornel
588d5bd52b Tweaks and Microoptimizations (#146)
* Fixed alpha benchmark

* Dedupe function

* Use integer math when rounding

* Fewer temporaries when slicing palette

* Filtering microoptimizations
2018-11-20 08:39:46 -05:00
Josh Holmer
d82406a959 Version 2.1.6 2018-11-17 18:02:16 -05:00
Kornel
4765eaa7f3 Alpha heuristic improvements (#144)
* Compress alpha with strategy sensitive to repetitions

* Update reductions flag when alpha changed

* Avoid needlessly cloning out-of-date idat_data and temp raw_data
2018-11-14 08:30:15 -05:00
Kornel
96eda85806 Identify and drop useless sRGB profiles (#143) 2018-11-13 14:37:02 -05:00
Joshua Holmer
88035ccbae Version 2.1.5 2018-10-11 08:41:11 -04:00
Joshua Holmer
87e738dda2 Fix incorrect detection of images that can reduce bit depth
Closes #140
2018-10-11 08:29:48 -04:00
Josh Holmer
903f962f29 Version 2.1.4 2018-09-28 21:05:58 -04:00
Josh Holmer
a4e0a34357 Bump version to 2.1.3 2018-09-16 23:21:51 -04:00
Kornel
3c466df80e Chunk name as 4 bytes (#135) 2018-09-16 16:09:55 -04:00
Josh Holmer
edd4966cea
Fix compilation error on i686 due to cfzlib incompat (#138)
Closes #137
2018-09-16 14:43:08 -04:00
Kornel
72393d06c9 Parallel loading (#136)
* Parallel loading

* Avoid vec allocation per pixel
2018-09-15 17:30:53 -04:00
Josh Holmer
df07d10a5c Version 2.1.2 2018-08-11 23:35:57 -04:00
Josh Holmer
bb1737928e Fix RGB to Indexed reduction if transparency pixel exists
Closes #129
2018-08-11 23:33:55 -04:00
Josh Holmer
7895e42687 Version 2.1.1 2018-08-11 20:34:04 -04:00