Оптимизация картинок для web
30.11.2012
Недавно протетстил несколько своих ресурсов на https://developers.google.com/speed/pagespeed. Удивился, что почти все изображения содержат 40-60% избыточной информации, т.е. маркеры EXIF, IPTC, ICC.
Получается удалив эту информацию можно ускорить полную загрузку страницы с картинками на 30%(все медиа на одном сервере nginx)
Получается удалив эту информацию можно ускорить полную загрузку страницы с картинками на 30%(все медиа на одном сервере nginx)
Утилиты для сжатия и удаления маркеров:
- ImageMagick: convert, mogrify
- jpegoptim
- pngnq
На debian все есть в репозиториях:
hcbogdan@station3# apt-get install jpegoptim, pngnq, imagemagick
Небольшой скрипт для оптимизации картинок (png и jpg):
#!/bin/bash DIR=$1 if [[ -z $DIR ]]; then exit -1; fi; for file in `find $DIR -type f -name '*.jpg'` do jpegoptim -q --strip-all "$file" done for file in `find $DIR -type f -name '*[^n][^q][^8].png'` do newname=${file%'.png'}'-nq8.png' pngnq -f "$file" mv -f $newname $file done
Принимает один параметр - имя директории для поиска картинок. Например:
hcbogdan@station3# chmod a+x image.opt.sh hcbogdan@station3# ./image.opt.sh /var/www
Примечание: в случае png создаеться временный файл "имяфайла"-nq8.png а потом перемещается обратно в источник
Также можно поставить в cron - и статика всегда будет "чистой".
30 00 * * 0 /usr/bin/image.opt.sh /var/www >/dev/null 2>&1
Комментарии