Как уменьшить размер файла с помощью PHP и JPEG - PullRequest
2 голосов
/ 11 февраля 2010

Я использую стандартные функции PHP imagecopytruecolor и imagejpeg масштабировать и создавать загруженные изображения из стандартной формы HTML.

Изображения отображаются с правильным размером, однако размер файла изображения достаточно велик (например, 540px * 350px = 250kb)

По сравнению с Photoshop Save for Web с использованием настроек высокого качества JPEG, те же файлы имеют размер около 60 КБ, что примерно в 4 раза меньше.

Что я могу сделать, чтобы уменьшить размер файла?

Ответы [ 4 ]

6 голосов
/ 11 февраля 2010

Вы можете установить $quality в imageJPEG. Из руководства :

bool imagejpeg (ресурс $ image [, строка $ filename [, int $ quality]])

качество является необязательным и варьируется от 0 (худшее качество, меньший файл) до 100 (наилучшее качество, самый большой файл). По умолчанию используется значение качества IJG по умолчанию (около 75).

По моему опыту, не рекомендуется выходить за рамки 70%.

Вы можете захотите попробовать, можете ли вы использовать лучшие результаты с меньшими размерами файлов из других механизмов обработки изображений, таких как ImageMagick . У меня часто возникает ощущение, что кодер JPG компании GD - это не верх, но на данный момент это не более чем субъективное впечатление.

1 голос
/ 11 февраля 2010

Ни одна библиотека изображений, которую я когда-либо видел, не приблизилась к тому, насколько эффективно Photoshop сжимает файл. Вы можете попробовать использовать другую библиотеку, например ImageMagick (также известную как Imagick), которая может сохранять файлы меньшего размера с тем же размером качества, что и используемый по умолчанию материал, но имейте в виду, что вы никогда не получите изображение размером 60 КБ из этих библиотек при этом разрешении.

0 голосов
/ 11 февраля 2010

Из документов

bool imagejpeg (ресурс $ image [, строка $ filename [, int $ quality]])

Эксперимент с качеством $

0 голосов
/ 11 февраля 2010

Вы можете изменить настройку качества (3-й аргумент imagejpeg, см. документы ). Значение по умолчанию составляет всего 75%, что уже должно быть довольно небольшим.

...