From d9e56f6edd9b4b2b6565a36c2a675797754ebe43 Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 2 Oct 2023 23:15:00 +1300 Subject: [PATCH] Add manual script --- MANUAL.txt | 184 ++++++++++++++++++++++++++++++++++++++++++++++ scripts/manual.sh | 5 ++ 2 files changed, 189 insertions(+) create mode 100644 MANUAL.txt create mode 100755 scripts/manual.sh diff --git a/MANUAL.txt b/MANUAL.txt new file mode 100644 index 00000000..32d1919c --- /dev/null +++ b/MANUAL.txt @@ -0,0 +1,184 @@ +oxipng 9.0.0 +Losslessly improve compression of PNG files + +Usage: oxipng [OPTIONS] ... + +Arguments: + ... + File(s) to compress (use '-' for stdin) + +Options: + -o, --opt + Set the optimization level preset. The default level 2 is quite fast + and provides good compression. Lower levels are faster, higher levels + provide better compression, though with increasingly diminishing + returns. + + 0 => --zc 5 --fast (1 trial, determined heuristically) + 1 => --zc 10 --fast (1 trial, determined heuristically) + 2 => --zc 11 -f 0,1,6,7 --fast (4 fast trials, 1 main trial) + 3 => --zc 11 -f 0,7,8,9 (4 trials) + 4 => --zc 12 -f 0,7,8,9 (4 trials) + 5 => --zc 12 -f 0,1,2,5,6,7,8,9 (8 trials) + 6 => --zc 12 -f 0-9 (10 trials) + max => (stable alias for the max level) + + Manually specifying a compression option (zc, f, etc.) will override + the optimization preset, regardless of the order you write the + arguments. + + [default: 2] + + -r, --recursive + When directories are given as input, traverse the directory trees and + optimize all PNG files found (files with “.png” or “.apng” extension). + + --dir + Write output file(s) to . If the directory does not exist, + it will be created. Note that this will not preserve the directory + structure of the input files when used with '--recursive'. + + --out + Write output file to + + --stdout + Write output to stdout + + -p, --preserve + Preserve file permissions and timestamps if possible. + + Timestamps can only be preserved if oxipng was compiled with the + `filetime` feature. + + -P, --pretend + Do not write any files, only show compression results + + -s + Strip safely-removable chunks, same as '--strip safe' + + --strip + Strip metadata chunks, where is one of: + + safe => Strip all non-critical chunks, except for the following: + cICP, iCCP, sRGB, pHYs, acTL, fcTL, fdAT + all => Strip all non-critical chunks + => Strip chunks in the comma-separated list, e.g. 'bKGD,cHRM' + + CAUTION: 'all' will convert APNGs to standard PNGs. + + --keep + Strip all metadata except in the comma-separated list + + -a, --alpha + Perform additional optimization on images with an alpha channel, by + altering the color values of fully transparent pixels. This is + generally recommended for better compression, but take care as this is + technically a lossy transformation and may be unsuitable for some + applications. + + -i, --interlace + Set the PNG interlacing type, where is one of: + + 0 => Remove interlacing from all images that are processed + 1 => Apply Adam7 interlacing on all images that are processed + keep => Keep the existing interlacing type of each image + + Note that interlacing can add 25-50% to the size of an optimized + image. Only use it if you believe the benefits outweigh the costs for + your use case. + + [default: 0] + + --scale16 + Forcibly reduce 16-bit images to 8-bit. Reduction is performed by + scaling the values, such that e.g. 0x00FF is reduced to 0x01 rather + than 0x00. + + -v, --verbose... + Run in verbose mode (use twice to increase verbosity) + + -q, --quiet + Run in quiet mode + + -f, --filters + Peform compression trials with each of the given filter types. You can + specify a comma-separated list, or a range of values. E.g. '-f 0-3' is + the same as '-f 0,1,2,3'. + + PNG delta filters (apply the same filter to every line) + 0 => None (recommended to always include this filter) + 1 => Sub + 2 => Up + 3 => Average + 4 => Paeth + Heuristic strategies (try to find the best delta filter for each line) + 5 => MinSum Minimum sum of absolute differences + 6 => Entropy Highest Shannon entropy + 7 => Bigrams Lowest count of distinct bigrams + 8 => BigEnt Highest Shannon entropy of bigrams + 9 => Brute Smallest compressed size (slow) + + The default value depends on the optimization level preset. + + --fast + Perform a fast compression evaluation of each enabled filter, followed + by a single main compression trial of the best result. Recommended + if you have more filters enabled than CPU cores. + + --zc + zlib compression level (1-12) + + --nb + No bit depth reduction + + --nc + No color type reduction + + --np + No palette reduction + + --ng + No grayscale reduction + + --nx + No reductions or deinterlacing + + --nz + No recompression of IDAT unless reductions occur. Recompression of + other compressed chunks (such as iCCP) will also be disabled. Note + that the combination of '--nx' and '--nz' will fully disable all + optimization. + + --fix + Do not perform checksum validation of PNG chunks. This may allow some + files with errors to be processed successfully. + + --force + Write the output even if it is larger than the input + + -Z, --zopfli + Use the slow but stronger Zopfli compressor. Recommended use is with + '-o max' and '--fast'. + + This option is only available if oxipng was compiled with the `zopfli` + feature. + + --timeout + Maximum amount of time, in seconds, to spend on optimizations. Oxipng + will check the timeout before each reduction or compression trial, and + will stop trying to optimize the file if the timeout is exceeded. Note + that this does not cut short any compression trials that are already + in progress, so it is currently of limited effectiveness for large + files or high compression levels. + + -t, --threads + Set number of threads to use [default: num CPU cores] + + This option is only available if oxipng was compiled with the + `parallel` feature. + + -h, --help + Print help (see a summary with '-h') + + -V, --version + Print version diff --git a/scripts/manual.sh b/scripts/manual.sh new file mode 100755 index 00000000..56e9b320 --- /dev/null +++ b/scripts/manual.sh @@ -0,0 +1,5 @@ +#!/bin/bash +cargo build + +./target/debug/oxipng -V > MANUAL.txt +./target/debug/oxipng --help >> MANUAL.txt