Преобразование файла PNG32 в формат PNG8 без потери альфа-канала
4070
LiraNuna
Я использую Linux и не имею доступа ни к одной из «модных» программ Adobe.
Я пытаюсь преобразовать существующее изображение PNG32 с альфа-каналом в PNG8. Я пробовал следующие методы:
convert original.png PNG8:new.png - Ужасно искажает изображение и сохраняет только двоичную альфу (не индексируется альфа)
GIMP - также не работает, но дает лучшее качество (хороший цветовой квантователь), чем ImageMagick.
pngcrush -rem alla -reduce -brute original.png new.png - Уменьшил изображение, но не принял во внимание квантование (в изображении меньше 256 цветов), поэтому на выходе все еще был формат PNG32.
Я знаю, что немного опаздываю на вечеринку, но недавно я укусил меня в веб-проекте, над которым я работаю.
Я использовал pngnq для пакетного преобразования, и мой PNG8 никогда не выглядел лучше. На самом деле, с самой высокой частотой дискретизации ( -s 1) результаты практически неотличимы от полного PNG32.
Какая полезная ссылка, спасибо! Я давно искал такой инструмент. Протестировал pngnq и он дает отличный результат, небольшой файл и плавную альфу.
jjrv 12 лет назад
0
1
DaveParillo
Ваш дистрибутив может включать pngquant . Если вы не можете найти его с помощью yum / apt-get, перейдите на веб-сайт. Я думаю, что это ваша лучшая ставка.
Если у вас есть проблемы с pngquant, вы можете попробовать pngout, но это долгий путь . Я слышал, что он хорошо справляется с сохранением альфа-канала, но может быть медленным. Возможно, люди испытывают медлительность из-за того, что «стратегия» по умолчанию - «Экстрим», что, как признает автор, медленный.
Это программа для Windows, но есть порты Linux (предположительно), но ссылка на странице авторов pngout устарела. Поддерживающий порт Linux, JonoF, теперь поддерживает страницу здесь .
Я должен признать, что никогда не использовал это. Удачи!
`pngquant` не сохраняет альфа-канал. Он выдает тот же результат, что и GIMP.
LiraNuna 15 лет назад
0
`pngout` не будет сотрудничать -` Невозможно сжимать дальше: копирование исходного файла`
LiraNuna 15 лет назад
0
Вот это да. Вы можете сделать это изображение доступным где-нибудь? Я бы хотел попробовать.
DaveParillo 15 лет назад
0
Просто возьмите любое изображение PNG32, на самом деле я использую одну из иконок из набора иконок Silk - http://www.famfamfam.com/lab/icons/silk/.
LiraNuna 15 лет назад
0
Все значки в famfamfam_silk_icons_v013.zip выглядят как 8-битные. У меня проблемы с поиском 32-битного изображения в Интернете. Я не хочу делать это самостоятельно, используя инструменты, которые вызывают у вас горе, потому что это вряд ли верный тест.
DaveParillo 15 лет назад
0
нашел 32-битное изображение с, я думаю, всем возможным набором уровней прозрачности: http://www.virtualmechanics.com/support/tutorials-spinnerpro/image/obj4120geo2655shd297pg5p6.png. Теперь я вижу вашу проблему ;-)
DaveParillo 15 лет назад
0
Используйте pngquant, но убедитесь, что у вас версия более поздняя, чем 1.6. В последней версии есть очень хороший квантователь, который в любом случае превзойдет libGD в PHP.
Debian wheezy по-прежнему содержит 13-летнюю версию с низким качеством вывода. Есть хороший пакет pngquant для экспериментального Debian и большинства других дистрибутивов Linux.
Если ваш дистрибутив устарел pngquant, используйте pngnqвместо этого.