Для того чтобы страницы сайта открывались быстро нужно использовать картинки как можно меньшего веса (размера файла). При этом, после компрессии качество изображений не должно сильно пострадать.
Чтобы выяснить, какой формат является оптимальным, мы провели тестирование форматов GIF, JPG, PNG и WEBP, и сравнили размеры получающихся файлов.
Компрессия осуществлялась на работающем сайте с помощью двух программ:
Путем уменьшения настройки качества от 100 до 0 процентов, находилось значение, при котором качество изображения оставалось приемлемым.
Сразу скажем, что обе программы GD и Imagick дают одинаковый результат при одном и том же параметре качества (Q), поэтому все примеры приведены только для изображений, полученных в программе GD .
Реальные размеры для больших изображений 1600x900px, для миниатюр 400x225px — видимые размеры могут отличаться.
По степени сжатия формат WEBP неоспоримый лидер.
Формат PNG практически на поддается сжатию обеими программами и дает размер файла на порядок больший, чем все остальные форматы. В частности, в данном тесте файлы в формате PNG имели размер файла более чем в 40 раз больший, чем у формата WEBP.
Можно было бы использовать формат PNG для изображений с прозрачным фоном, однако, формат WEBP также работает с альфа-каналом, и дает, при этом, гораздо лучший результат.
Таким образом, если вы хотите добиться хорошей компрессии файлов, формат PNG вам не подойдет.
Формат GIF плохо передает градиенты и не подходит для обычных фотографий. Вообще формат GIF дает хорошие результаты только для графичных рисунков со сплошными заливками цвета, но изображение придется подготовить заранее. Однако в связи с появлением векторного формата SVG, формат GIF становится неактуальным (кроме gif-анимации).
Для больших изображений формат WEBP также выигрывает у формата JPG, который весит на 50% больше.
Как мы видели выше, формат WEBP дает наиболее оптимальное качество при меньшем весе. Более того, этот формат дает возможность получить еще меньшие размеры файлов без заметного ухудшения качества, что невозможно для других форматов.
Преимуществом формата WEBP является то, что он хорошо сглаживает градиентные участки изображения даже при большой компрессии.
Приведены примеры для миниатюр 400x225px.
На старых версиях PHP могут наблюдаться ошибки в работе библиотеки GD. Желательно установить свежую версию PHP, как минимум v7.1. Если возникает ошибка "Allowed memory size of ... bytes exhausted", увеличьте "memory_limit" в настройках PHP.