Оптимизация старых изображений на сайте с помощью ImageMagick. Bash-скрипт

Когда на хостинге заканчивается место, нужно сжимать картинки.

Следующий скрипт оптимизирует изображения, выполняя рекурсивный поиск в папках:

  • убирает анимацию gif, оставляя только нулевой фрейм [0];
  • сжимает картинки, большие 60Кб, до размера 380х380 пикселов;
  • сжимает картинки, большие 30Кб, но меньшие 60Кб, до размера 220х220 пикселов;
  • оптимизирует jpeg, большие 30Кб, меняя качество на 75%.
  1. #!/bin/bash
  2.  
  3. find . -type f -iname '*.gif' -size +80k -exec convert {}[0] -sample 240x240 111_temp.png \; -exec convert 111_temp.png {} \; -exec rm 111_temp.png \;
  4. find . -type f -regextype sed -regex ".*\.\(png\|jpg\|jpeg\)" -size +60k -exec convert {} -sample 380x380 {} \;
  5. find . -type f -regextype sed -regex ".*\.\(png\|jpg\|jpeg\)" -size +30k -size -60k -exec convert {} -sample 220x220 {} \;
  6. find . -type f -regextype sed -regex ".*\.\(jpg\|jpeg\)" -size +30k -exec convert {} -quality 75% {} \;

Для корректной работы скрипта необходимо установить imagemagick

apt-get install imagemagick

Другой способ - с помощью Phatch Image Inspector.