Почему размер png не изменяется после использования сжатия HTTP gzip

Я использую следующий .htaccess для установки сжатия gzip:

AddOutputFilterByType DEFLATE text/html image/png image/jpeg text/css text/javascript

Пожалуйста, проверьте этот URL: http://www.coinex.com/cn/silver_panda/proof/china_1984_27_gram_silver_panda_coin/

сжатие gzip работает для html, css, js и jpg, но не работает для png (действительно потрясающе..)

Ответ 1

PNG уже является сжатым форматом данных. Сжатие с помощью GZIP вряд ли приведет к уменьшению размера и может сделать его больше.

Я удивлен, что вы видите преимущества GZIP-JPG, так как они также сжаты.

См. Здесь советы Google по использованию GZIP. Они не рекомендуют применять его к изображениям.

Ответ 2

Формат изображения PNG уже использует внутреннее сжатие. Таким образом, вы обычно не увидите заметного уменьшения передаваемого размера, используя сжатие HTTP поверх этого. Поэтому вы должны удалить image/png из списка, который вы упомянули, чтобы не тратить впустую циклы процессора на сервере и клиенте на этапе избыточного сжатия.

Ответ 3

Если вы хотите уменьшить размер PNG, используйте https://tinypng.com/ или другой оптимизатор png. Да, он полностью поддерживает альфа-канал.

Ответ 4

PNG - это формат сжатия без потерь. В основном он использует пространственное сжатие для полного сохранения исходного качества изображения. Он не может быть сжат дальше без потери качества (вам нужно будет использовать другой формат без потерь, чтобы увидеть, работает ли он лучше).

Нет необходимости использовать GZIP (или эквивалент), поскольку он просто добавит обработку для декомпрессии клиентской части изображений.

Для JPEG лучше всего сделать, чтобы убедиться, что вы используете правильные настройки разрешения и качества для своей цели. GZIP в лучшем случае производит результаты микширования. Убедитесь, что вы удалили из него все метаданные (если вам не нужна эта информация на стороне клиента, но вам лучше держать эти данные в базе данных).