Как объединить RGB-изображение и 8-битное альфа-изображение в один файл PNG с помощью Imagemagick? - PullRequest
7 голосов
/ 13 апреля 2011

Представьте, что у меня есть rgb.jpg и alpha.png. Как объединить их в rgba.png с Imagemagick?

1 Ответ

20 голосов
/ 08 сентября 2011

Поскольку вы не указали, я предполагаю, что достаточно новая версия ImageMagick запускается из командной строки. Это было протестировано с использованием ImageMagick 6.6.9-7 в Linux (из Debian ).

Если alpha.png - это изображение, из которого вы хотите скопировать альфа-канал, или изображение в оттенках серого без альфа-канала, вы можете использовать следующее:

convert rgb.jpg alpha.png -compose copy-opacity -composite rgba.png

В противном случае вам придется выполнить немного больше обработки на alpha.png. Например, это преобразует alpha.png в оттенки серого и игнорирует альфа-канал:

convert rgb.jpg ( alpha.png -colorspace gray -alpha off ) -compose copy-opacity -composite rgba.png

Обратите внимание, что в последней команде может потребоваться экранировать скобки, в зависимости от среды командной строки.

При необходимости вы также можете инвертировать изображение в оттенках серого, прежде чем использовать его в качестве альфа-канала:

convert rgb.jpg ( alpha.png -colorspace gray -alpha off -negate ) -compose copy-opacity -composite rgba.png
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...