2014-01-29 3 views
0

Я использую следующие для оптимизации некоторых PNG изображений с Pngcrush:Pngcrush вызывая черный фон на некоторых изображениях

exec(
    "pngcrush -q -blacken -brute -reduce -rem alla -rem text -rem time {$source} {$destination}", 
    $output, 
    $return_var 
); 

Оптимизация работы очень хорошо, но для некоторых образов, PNG создает эти черные блоки, где это прозрачность идет.

Проблема исчезает, когда я удаляю параметр -reduce, но тогда оптимизация PNG делает очень мало, и это бесполезно для оптимизации.

Я предполагаю, что проблема связана с прозрачностью, так есть способ сказать pngcrush, чтобы пропустить команду -reduce, только для изображений, которые не имеют прозрачности?

+0

Я думаю, из-за MIME-типа вашего png-изображения. –

+1

Можете ли вы предоставить ссылку на исходное изображение, демонстрирующее поведение? Кроме того, какую версию pngcrush вы используете? Текущая версия - 1.7.70. –

ответ

1

Не используйте -blacken, так как это является непосредственной причиной вашей проблемы.

the changelog От:

Добавлено -blacken вариант, чтобы разрешить изменение цвета образцов любых полностью прозрачных пикселей до нуля в PNG файлы с цветом типа 4 или 6, потенциально улучшая их сжимаемость. Обратите внимание, что это необратимое изменение с потерями: базовые цвета всех полностью прозрачных пикселей теряются, если они еще не были черными.

Возможно, некоторые из ваших прозрачных пикселей не так прозрачны, как кажется.

+0

Я попытался удалить черное, но это было действительно только тогда, когда я удалил -изменю, когда проблема исчезла, но тогда у меня практически нет оптимизации. Решение, которое я использовал, состояло в том, чтобы проверить, содержат ли изображения альфа, прежде чем я их сохраню, и если они не будут сохранены в качестве jpeg-изображения. –

+0

Интересно - спасибо за продолжение. Можете ли вы предоставить ссылку на файл, который показывает это поведение? – usr2564301

0

У меня была эта проблема на v1.7.65 с помощью опции «-reduce». То же изображение и команда отлично работали над v1.7.86.

Смежные вопросы