Сжатие файлов PNG в PHP


Я создаю файл PNG с расширением cairo PHP. Изображение содержит фон и текст. Теперь я хочу сжать эти изображения с помощью PHP после того, как они сгенерированы cairo. Есть ли какая-нибудь библиотека для этого?

Я нашел инструмент pngcrush. Но это инструмент командной строки. Я не хочу вызывать вызов system. Если нет решения на PHP, подойдет решение на C. В этом случае я сделаю расширение PHP.

Я прочитал этот связанный с вопрос. Но ответа нет в этом.

Author: Community, 2012-03-30

3 answers

Я бы взглянул на pngoptimizer. Вы можете получить исходный код для него в нижней части страницы, и у него также есть отдельная версия CLI.

Единственная проблема в том, что источником является C++, а не ANSI C. Я никогда не делал расширения PHP, поэтому не знаю, имеет ли это значение.

 1
Author: tereško, 2012-03-30 19:48:09

Вы можете использовать imagepng()...

//If you don't already have a handle to the image and it's just on the file system...
$im = imagecreatefrompng("yourGenerateFile.png");
$quality = 5; //0 - 9 (0= no compression, 9 = high compression)
imagepng($im, 'file/to/save.png', $quality);  //leave out filename if you want it to output to the buffer
imagedestroy($im);
 1
Author: Brad Harris, 2012-03-30 17:47:41

Для кода C взгляните на ImageMagick. Похоже, что также существует расширение PHP.

 0
Author: RunHolt, 2012-03-30 17:43:46