Альфа-прозрачность в индексированных PNG-изображениях - PullRequest
13 голосов
/ 15 ноября 2010

Вот изображение: Градиент1 http://adamhaskell.net/img/gradient1.png
Это изображение представляет собой простой градиент от черного к прозрачному, сохраненный в полном PNG RGBA.

Вот то же изображение, преобразованное в PNG с индексированной альфа-версией с помощью GIMP (Photoshop выдает тот же результат)
Градиент2 http://adamhaskell.net/img/gradient1b.png
Как видите, градиент теперь полупрозрачный,полупрозрачные.

Вот снова то же изображение, только на этот раз оно было преобразовано в PNG с индексированной альфа-версией с помощью PHP-скрипта, который я написал:
Gradient3 http://adamhaskell.net/img/gradient1c.png

Итак, мой вопросявляется следующим: Почему GIMP и Photoshop не могут поддерживать частичную прозрачность в индексированных изображениях, когда PHP-скрипт ясно показывает, что такое изображение может быть создано без проблем?
Есть ли что-то «не так» с изображением, палитра которого содержит альфа-информацию?
Еще один вопрос, связанный с программированием: работает ли эта прозрачность на последнем изображении в Internet Explorer 6?

Ответы [ 4 ]

5 голосов
/ 30 декабря 2012

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

4 голосов
/ 06 сентября 2011

Другой вариант, кроме fireworks, - pngquant , приложение командной строки, которое преобразует png rgba в индексированный png с прозрачностью.

Я нашел этот пост , в котором еще немного говорится о том, как его использовать.

IE6 и более ранние версии в Windows не поддерживают PNG с переменной прозрачностью без раздражающих обходных путей. Индексированный PNG покажет только полностью непрозрачные части, которые обычно работают довольно хорошо. Тень исчезнет, ​​но непрозрачные части логотипа или значка будут продолжать отображаться.

На этой странице есть лучшее объяснение и инструкции с большим количеством инструментов сжатия и квантования png: http://calendar.perfplanet.com/2010/png-that-works/

4 голосов
/ 21 июля 2012

Для записи, PNG буквально не поддерживает индексированные изображения с альфа-каналом.Что действительно происходит, так это то, что PNG позволяет добавлять дополнительные цвета в таблицу цветов (т. Е. Индекс) со значениями альфа в этих цветах ... а не полным альфа-каналом.FWIW ...

1 голос
/ 23 января 2011

Да, я знаю, что вы имеете в виду. Fireworks - единственная из известных мне программ для редактирования изображений, которая может без проблем создавать и редактировать PNG8 + Alpha. Я хотел бы, чтобы другие программы рисования поддерживали этот формат, потому что Fireworks стоит дорого!

...