Сжатие PNG с помощью PHP magickwand

Мне интересно, как правильно сжать изображение PNG.

Ситуация такова:

У меня есть изображение PNG, сжатое и уменьшенное по цвету с помощью Irfanview в Windows. Это около 20 КБ. Когда мое программное обеспечение портала изменяет размер (используя magickwand 1.0.7) со значениями по умолчанию, это около 63 КБ (!).

Следующая попытка состояла в том, чтобы вызвать MagickSetImageDepth($this->_imageHandler,8), в результате чего размер файла составил 34 КБ, что лучше, но все же он больше, чем (больше по размеру) исходный файл.

Ни одна из задокументированных функций не подходит для дальнейшего сжатия изображения.

Любая подсказка будет принята с благодарностью!

Грец, Соса


person Claudio030    schedule 22.06.2009    source источник


Ответы (2)


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

В вашем случае я бы сказал, что ваши изображения нельзя сжимать дальше, по крайней мере, с помощью MagickWand. Возможно, вы просто захотите пропустить этот шаг.

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

person Travis    schedule 23.06.2009

Попробуйте этот инструмент от Yahoo - он великолепен!

http://developer.yahoo.com/yslow/smushit/

person Chris Harris    schedule 22.06.2009