2010-11-15 2 views
11

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

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

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

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

+0

'optipng -force' правильно сохраняет его как indexed-alpha. –

ответ

3

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

+0

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

+0

Я использую GD для всех моих потребностей в программируемых изображениях;) –

+0

GD? Нужно ли мне напоминать или просто информировать? (Не графический дизайн, или?) –

1

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

+2

[ImageAlpha] (http://pngmini.com) делает это бесплатно и ИМХО лучше, чем Fireworks. – Kornel

+0

Существует также [Цветной квантователь (Windows)] (http://x128.ho.ua/color-quantizer.html) и [Pngnq (Windows и Mac)] (http://pngnq.sourceforge.net/). Разработчик последнего хочет создать плагин GIMP, но GIMP не предлагает палитру, говорит он. Может быть, кто-то с большим количеством времени, чем я, может убедить его или использовать это или что-то еще? Heh .. –

4

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

Я нашел this post, который рассказывает о том, как его использовать.

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

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

4

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

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