Оптимизация размера файла JPG - PHP, ImageMagick и скорость страницы Google

StackOverflow https://stackoverflow.com/questions/2540068

Вопрос

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

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


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

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top