WD5 - разработка сайтов

Оптимизация изображений на сервере

Сжатие и оптимизация jpg, серверные программы в порядке убывания степени оптимизации, 1 и 2 практически равны.

  1. jpegtran (apt-get install libjpeg-progs)
  2. Jpegoptim (apt-get install jpegoptim)
  3. imagemagick

Сравнение программ для сжатия jpeg

Сжатие и оптимизация png

  1. Pngcrush
  2. Optipng

Примеры для JPG

Jpegtran

# сохранит оптимизированную копию в min.image.jpg
jpegtran -copy none -optimize -outfile min.image.jpg image.jpg

# изменение качества
jpegtran -quality 75 -copy none -optimize -outfile min.pro.image.jpg image.jpg

# прогрессивный jpg, в тот же самый файл
jpegtran -progressive -outfile image.jpg image.jpg

Jpegoptim

# Оптимизирует файл и сохранит его в самого себя
jpegoptim file.jpg

# Удалить все метаданные
jpegoptim file.jpg --strip-all

# Оптимизировать все файлы
jpegoptim *.jpg --strip-all

imagemagick

# Удалить мета информацию
convert test.jpg -resize 100x100 -strip test_100.jpg

# Конвертировать в progressive формат
convert -interlace Plane input-file.jpg output-file.jpg

Серверный скрипт для сжатия jpg с помощью jpegtran, недостатки bash присутствуют, например имя файла со знака - минус

for file in $(find $DIR -type f \( -name "*.jpg" -or -name "*.jpeg" -or -name "*.JPG" \)); do
    echo found $file for optimizing...
    jpegtran -copy comments -optimize -progressive -outfile $file $file
done

Примеры для PNG

Pngcrush

# Оптимизирует in.png и запишет результат в out.png 
pngcrush -reduce -brute in.png out.png

Optipng

# Оптимизирует файл и сохранит его в самого себя
optipng test.png