Toby Lawrence
bc7de9b734
Add documentation to new public methods for optimizing in-memory.
2016-05-05 12:21:31 -04:00
Toby Lawrence
2573b20966
Add support for optimizing PNGs loaded in-memory.
...
In keeping with being able to use oxipng as a library, this adds a way
for developers to optimize a PNG already in memory, instead of requiring
it to exist on disk first.
2016-05-05 07:54:52 -04:00
Joshua Holmer
3a39b13acf
Add option for changing number of threads at runtime
...
Closes #39
2016-05-04 10:37:45 -04:00
Joshua Holmer
e4cd9b85e7
Move default Options into impl Default in library
2016-05-04 10:09:26 -04:00
Joshua Holmer
a4a5953786
Implement --fix to fix CRC errors in PNG block headers
...
Closes #5
2016-05-02 09:25:48 -04:00
Joshua Holmer
08eb44ec1a
Partially implement --preserve
...
Needs better implementation once stable Rust improves,
or perhaps see if there's a crate for this
Reference #4 but keep open
2016-04-29 23:37:27 -04:00
Joshua Holmer
73d477924e
Merge branch 'master' of github.com:shssoichiro/oxipng
2016-04-22 13:37:41 -04:00
Joshua Holmer
2c3e35d8bb
Moderately improve cyclomatic complexity
2016-04-22 13:31:59 -04:00
Joshua Holmer
f3b8665278
Use miniz for compression strategies 0 and 1
...
Worst case (RGB/A images) it performs similarly to zlib
Best case (Indexed images) it performs 1-2 orders of magnitude better
Zlib is kept for strategies 2 and 3, where it performs an order of
magnitude better than miniz
2016-04-20 23:14:41 -04:00
Joshua Holmer
3f3fbb6f60
Don't report pretend mode if verbosity is set to none
2016-04-19 22:38:34 -04:00
Joshua Holmer
2e7bfa4ebc
Add palette reduction
...
Closes #11
2016-04-13 23:16:32 -04:00
Joshua Holmer
1fc81ef683
Support interlaced files and allow conversion between interlaced and progressive files
...
Closes #3
2016-04-04 16:07:46 -04:00
Joshua Holmer
5740867be5
Work on implementing interlacing [ci skip]
2016-03-29 22:44:21 -04:00
Joshua Holmer
132a15403a
Don't store intermediate copies of compressed image data unless it is current best.
...
Reduces peak memory usage significantly.
2016-03-19 10:42:03 -04:00
Joshua Holmer
87e21c2020
Limit number of simultaneous threads to help memory usage at high opt levels
...
Still uses a lot of memory. Would like to remove the storage of all compression
data attempts and calculate the best immediately during each thread.
2016-03-19 02:07:31 -04:00
Joshua Holmer
f1e65067f6
Improve best-filter-per-line heuristic used in filter mode 5
...
Fixes #16
2016-03-10 14:23:03 -05:00
Joshua Holmer
eba8062ba5
Add documentation to publicly visible areas of lib
...
Fixes #17
2016-03-08 11:59:37 -05:00
Joshua Holmer
b889c73a3b
Make --strip option more versatile
...
Closes #22
2016-03-05 22:36:31 -05:00
Joshua Holmer
7d1e3a5bb9
Print console output to stderr instead of stdout
...
Makes it friendlier with --stdout option
See #20 for discussion
2016-03-04 16:37:40 -05:00
Joshua Holmer
c6452beb12
Select compression and filter modes heuristically for -o1
...
Closes #21
2016-03-04 15:24:58 -05:00
SethDusek
d218d37944
Actually be quiet
2016-03-04 21:38:26 +05:00
Joshua Holmer
abedfc9c70
Each input file should output to its own file correctly
...
Fixes #15
2016-03-03 16:30:05 -05:00
Joshua Holmer
9fa55ae34a
Fix all bit depth and color reduction tests
...
Closes #8
2016-03-02 12:40:56 -05:00
Joshua Holmer
d2cd105b1a
Fix most of rgba tests
2016-02-22 22:40:17 -05:00
Joshua Holmer
30f03678d2
Fix filtering, passes some more tests
2016-02-21 23:27:19 -05:00
Joshua Holmer
675a28ee32
Correctly save best run
...
Fixes #10
2016-02-20 14:49:33 -05:00
Joshua Holmer
5c0bbbe2bb
Fix many issues
2016-02-18 16:23:16 -05:00
Joshua Holmer
08e6d42021
Implement multithreading for deflate passes
...
Closes #6
2016-02-04 10:32:20 -05:00
Joshua Holmer
e4c9aca4a5
Fix outputting IHDR twice
2016-01-16 14:30:05 -05:00
Joshua Holmer
0866eb01ea
Only change interlacing if we have to
2016-01-15 13:35:41 -05:00
Joshua Holmer
ab15fc1d61
Color reduction
2016-01-14 13:24:56 -05:00
Joshua Holmer
534ba84052
Add quite a few things, including parsing transparency headers
2016-01-12 13:16:57 -05:00
Joshua Holmer
9267f040af
Implement bit depth reduction
2016-01-12 11:50:39 -05:00
Joshua Holmer
939d886932
Add header stripping
2016-01-12 11:06:52 -05:00
Joshua Holmer
ee31774078
Add basic integration tests
...
Also add force option--necessary for testing but may be useful to some people
who like to live dangerously
2016-01-11 14:16:05 -05:00
Joshua Holmer
4765c2133a
Filtering, mostly
2016-01-10 23:24:02 -05:00
Joshua Holmer
e24fa4ae27
Run clippy and rustfmt
2016-01-10 15:13:12 -05:00
Joshua Holmer
471d5179d5
Write output files
2016-01-10 15:09:05 -05:00
Joshua Holmer
913d9e0c46
Minor typing optimizations
2016-01-08 16:20:04 -05:00
Joshua Holmer
5f866d9844
Completely parse CLI options
2016-01-08 15:09:00 -05:00
Joshua Holmer
273880ea0b
Implement option parsing - Part 1
...
The compression options help text keeps getting split up by rustfmt.
Don't let it.
2016-01-07 16:29:02 -05:00
Joshua Holmer
052b047222
Get zlib compression to work
2016-01-01 01:00:57 -05:00
Joshua Holmer
9e1cf7881d
Use our own libpng
2015-12-18 22:19:05 -05:00
Joshua Holmer
7d3a601686
So as to not lose my work
2015-12-16 08:01:05 -05:00