Оптимизация размера файла JPG - PHP, ImageMagick и Google Page Speed - PullRequest
8 голосов
/ 29 марта 2010

У меня есть код фотогалереи, который изменяет размеры изображения и создает миниатюры. Я использую ImageMagick, чтобы сделать это. Я запустил страницу галереи с помощью инструмента Google Page Speed, и выяснилось, что изображения и миниатюры с измененным размером содержат около 10 КБ данных (особенно файлов JPEG).

Что я могу добавить в свои скрипты для оптимизации размера файла?


ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Я использую фильтр imagick::FILTER_LANCZOS с настройкой размытия 0.9 при вызове функции resizeImage(). JPEG имеет настройку качества 80.

Ответы [ 2 ]

10 голосов
/ 30 марта 2010

Я нашел этот вопрос, " Инструменты для оптимизации JPEG? ", в котором содержится некоторая полезная информация, но решения находятся за пределами PHP. Используя подсказки из решений этого вопроса, я обнаружил, что можно выполнить две оптимизации без потерь:

  1. Оптимизация таблиц кодирования Хаффмана
  2. Удаление метаданных (EXIF и т. Д.)

И то, и другое можно выполнить с помощью ImageMagick следующим образом:

  1. Согласно документации ImageMagick , оптимальные таблицы кодирования Хаффмана вычисляются по умолчанию. Об этом шаге уже позаботились, ууу!
  2. Удаление метаданных можно выполнить очень просто, используя метод stripImage () .

Одно изображение, которое я протестировал, было уменьшено на 12 КБ. Размер файла 600x450 увеличился с 63,42 КБ до 51,42 КБ, а миниатюра 140x105 - с 17,98 КБ до 5,98 КБ.

3 голосов
/ 31 марта 2010

Запустите ваши изображения через сервис SmushIt от Yahoo, где изображения преобразуются в PNG с точным количеством цветов. Не потеря качества, а потеря веса:)

...