Ingvar Stepanyan
121558bf5c
Add libdeflater as an option ( #203 )
...
libdeflater is a Rust wrapper around
[libdeflate](https://github.com/ebiggers/libdeflate ) - an alternative
heavily optimised library for deflate/zlib/gzip compression and
decompression that is intended for situations where upper bounds of the
output are well-known.
In my benchmarks on test files in the repo it has shown to be usually
both slightly faster and providing better compressed output than
cloudflare-zlib, but in some cases showing the opposite, so rather
than swapping defaults, it's currently provided as another option,
similarly to zopfli.
Since it's not strictly better in all cases, I'm not providing median
numbers, but you can check distribution histograms for time and size
differences here (all using `oxipng -o 6 -t 6 -P`):
https://docs.google.com/spreadsheets/d/1WOKgeYZBhLkQvMGAC36snN4azilElzOFhx63RJu0EZY/edit?usp=sharing
2020-03-31 20:24:57 -04:00
Kornel
681089f8c7
Remove the concept of size bias ( #199 )
...
Closes #198
2020-03-31 19:28:22 -04:00
dependabot-preview[bot]
d417a712d3
Bump image from 0.23.0 to 0.23.2
...
Bumps [image](https://github.com/image-rs/image ) from 0.23.0 to 0.23.2.
- [Release notes](https://github.com/image-rs/image/releases )
- [Changelog](https://github.com/image-rs/image/blob/master/CHANGES.md )
- [Commits](https://github.com/image-rs/image/compare/v0.23.0...v0.23.2 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-19 04:40:46 +00:00
dependabot-preview[bot]
6593a5f6fe
Bump itertools from 0.8.2 to 0.9.0
...
Bumps [itertools](https://github.com/bluss/rust-itertools ) from 0.8.2 to 0.9.0.
- [Release notes](https://github.com/bluss/rust-itertools/releases )
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md )
- [Commits](https://github.com/bluss/rust-itertools/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-19 04:03:14 +00:00
dependabot[bot]
e33d120481
Bump minimist from 1.2.0 to 1.2.5 ( #201 )
...
Bumps [minimist](https://github.com/substack/minimist ) from 1.2.0 to 1.2.5.
- [Release notes](https://github.com/substack/minimist/releases )
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.5 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-18 14:07:48 -04:00
Josh Holmer
39ff7cfd5c
Bump all dependency patch versions
2020-03-02 01:50:10 -05:00
Josh Holmer
bded03908f
Silence cognitive complexity warnings
2020-03-02 01:45:04 -05:00
Josh Holmer
b9dc9e72bb
Update image crate to 0.23
2020-03-02 01:44:53 -05:00
Josh Holmer
0e3c0b922d
Enable more clippy lints and fix some clippy issues
2020-01-19 05:22:14 -05:00
Josh Holmer
139d29cc9b
Version 2.3.0
2019-10-07 23:34:23 -04:00
Ingvar Stepanyan
659717cb1f
Allow usage on wasm32-unknown-unknown target ( #194 )
...
* Avoid using time API when we don't need it
This avoids a syscall to the time API when the result is ignored later anyway.
This allows to use the library with default options on wasm32-unknown-unknown, where the unimplemented syscall would panic otherwise.
* eval_send doesn't need to be an Option
We can drop the value manually, thus avoiding unwrap on each access.
* Keep single `use rayon::prelude::*`
If either `rayon` is already imported, then `rayon::prelude::*` should always resolve.
* Extract comparator
* Fully enable non-parallel mode
2019-09-25 13:01:53 -04:00
Kamal Ahmad
68db304a2a
Don't apply alpha optimizations unless --alpha is paseed ( #187 )
...
Closes #164
2019-09-24 11:33:50 -04:00
Kornel
e473958377
Palette sorting ( #193 )
...
* Implement alpha and luminosity palette sorting
* Also sort when reducing to palette
* Bump Rust version
* Color comparison
2019-09-10 18:13:05 -04:00
Kamal Ahmad
68b763bcdd
Reduce alloc in filtering/unfiltering by reusing buffers ( #191 )
2019-09-04 11:09:54 -04:00
Kornel
239ca81db7
Update dependencies ( #186 )
...
* Update dependencies
* Bump Rust to 1.34
2019-08-04 12:12:08 -04:00
Felix Hanau
4adcc5e14a
Interlacing fixes ( #182 )
...
* Fix decoding interlaced images with height or width <= 2
* Add Issue 175 test case
* Deinterlace tiny images correctly
2019-07-24 09:16:13 -04:00
Daniel Wong
4cb26d462e
Allow disabling all alpha optimizations ( #181 )
...
Fixes a bug where oxipng would crash if alpha optimizations were all disabled.
2019-07-23 14:21:46 -04:00
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