Спорт для тебя, для школьников, для студентов, для всех
ВходРегистрация
Блог веб-кукуйца
 

Мудрость. Концентрированная. Я копил её всю жизь. Собирал по крупицам. Выменивал по дорогому курсу на опыт и время.

Добавить в избранное Отправить мне e-mail
Комментируемые записи

Warning: imagepng() [function.imagepng]: gd-png: fatal libpng error: zlib error

0.00 (0)

Недавно пытался сгенерировать через PHP картинку в формате PNG и столкнулся с ошибкой:

<?php
   imagepng($image, 'filename.jpg, 100);
?>

Warning: imagepng() [function.imagepng]: gd-png: fatal libpng error: zlib error and Warning: imagepng() [function.imagepng]: gd-png error: setjmp returns error condition

Warning: imagepng() [function.imagepng]: gd-png error: setjmp returns error condition in resizer.php on line 162

Гугль сообщил мне, что не я один с такой ситуацией столкнулся. Решение простое и незамысловатое :)

Оказывается, третий параметр функции ImagePNG имеет другие допустимые решения. По аналогии с функцией imagejpeg я считал, что этот параметр означает качество (0 - самое плохое, 100 самое хорошее). Но этот параметр означает степень компресии (9 = максимальная компрессия, 0 = наименьшая компрессия). Она является обратной по сравнению с шкалой для JPG.

Если у вас есть метод, который может генерировать картинки нескольких форматов, можно сделать простое преобразование значения параметра качества:

<?php
/**
* Вывести объект-изображение в заданном формате с заданным качеством в файл
* @param int $quality Качество генерируемого изображения ( 0 = минимальное качество, 100 = максимальное качество)
*/
function resize($image, $type, $quality, $filename) {
...
switch($type) {
case 'gif':
imagegif($image, $filename); // параметр качества не предусмотрен
break;
case 'jpg':
imagejpeg($image, $filename, $quality); // диапазон значений параметра $quality = 0...100, 100 = максимальное качество картинки
break;
case 'png':
$quality = max(0,9-(int)($quality/11.1)); // диапазон значений 0...9, 0 = максимальное качество
imagepng($image, $filename, $quality);
}
}
?>

Метки: php, png, jpg, warning, imagepng, картинки
image Комментарии: 0 Просмотров: 122 [История изменений] Размер:2902 байт
Последние изменения сделаны: volyntsev Павел Волынцев 54 дня назад 16.01.2010 04:17:36
Отправить комментарий

Введите код на картинке 
Ваше имя 
E-mail 
(видим лишь владельцу сайта)
WWW 

Тема

В тексте можно использовать Wiki или HTML теги



Жалоба | © Kolobok smiles, Aiwan