compresspng.sh 918 B

12345678910111213141516171819202122232425
  1. #!/usr/bin/env bash
  2. # Compresses PNG files to lower file sizes
  3. # Results are comparable to compressor.io etc.
  4. # License: CC0
  5. # Usage:
  6. # - Make sure to chmod +x compresspng.sh
  7. # - compresspng.sh /path/to/somefile.png
  8. # Result will be saved as: /path/to/compressed_somefile.png
  9. # Ref: http://www.ffnn.nl/pages/articles/media/png-optimization.php
  10. [ -z "$(command -v convert)" ] && echo 'Error: convert binary missing. Please install ImageMagick.' && exit 1
  11. [ -z "$(command -v optipng)" ] && echo 'Error: optipng binary missing. Please install optipng.' && exit 2
  12. _input_dir="$(dirname $1)"
  13. _input_filename="$(basename $1)"
  14. # Convert to indexed color space
  15. convert -quality 0 +dither -colors 256 "$1" "$_input_dir/compressed_${_input_filename}"
  16. # Compress even more with optipng
  17. optipng -zc1-9 -zm1-9 -zs0-2 -f0-5 -out "$_input_dir/compressed_${_input_filename}" "$_input_dir/compressed_${_input_filename}"