Ах, если я правильно помню, когда я прочитал эту статью несколько месяцев назад, у pngquant не было версии для Windows. Я вижу, что теперь есть. Так что я попробовал, и pngnq тоже.
Последнее, похоже, лучше работает с тестовым изображением IceAlpha.png (из libpng.org), за счет немного большего размера изображения (в любом случае его можно постобработать с помощью pngcrush или pngout).
Алгоритмы дизеринга (два из pngquant, единственный из pngnq) разные, возможно, стоило бы использовать оба инструмента, конвертировать изображения со всеми алгоритмами и посмотреть, что выглядит лучше.
Для записи, на стороне Windows, IrfanView (4.10) очень хорошо отображает эти изображения (используя уровень прозрачности для каждой записи палитры), в то время как XnView (1.85.1) и Gimp (2.4) применяют только полную прозрачность / непрозрачность display, а-ля Gif: лампочка, приведенная в качестве примера в связанной статье, имеет прозрачный фон вокруг нее, но оранжевая часть полностью непрозрачна.
И отличная утилита TweakPNG показывает, что у нас есть блок PLTE (палитра, 222 записи) и блок tRNS (альфа-значения для цветов палитры, 222 записи). Более того, он позволяет редактировать каждую запись палитры, цвет и альфа-уровень. Может быть интересным дополнительным инструментом для этого формата.
Примечание по поддержке IrfanView: если он корректно обрабатывает PNG8 для прозрачности, он не обрабатывает гамма-информацию в файлах PNG: на изображении тукана или изображения пинг-понга мне пришлось применить гамму 2,4 для получения аналога ( светлее) цвета.
Также обратите внимание, что IrfanView делает ужасную работу по преобразованию 32-битного изображения PNG в 256, позволяя использовать только один прозрачный цвет, что выглядит плохо, если полный цвет был размытым!
Я вижу, что руководство GIMP гласит: " его формат" PNG8 ", как и GIF, использует только один бит для прозрачности; возможны только два уровня прозрачности: прозрачный или непрозрачный. »
в то время как стандарт ISO / W3C гласит:
« Блок tRNS указывает либо альфа-значения, связанные с записями палитры (для изображений с индексированным цветом), либо один прозрачный цвет (для изображений в оттенках серого и истинного цвета). ». Спецификация PNG 1.2 добавлено: « Хотя простая прозрачность не так элегантна, как полный альфа-канал, она требует меньше места для хранения и достаточна для многих распространенных случаев. »
Похоже, уникальный прозрачный цвет более реализован, чем полная палитра прозрачности. По крайней мере, браузеры понимают это правильно.