Экспорт сырой альфы с помощью ImageMagick - PullRequest
2 голосов
/ 09 декабря 2011

Мне нужно извлечь сырую альфа из изображений, чтобы передать это приложению для использования в качестве маски непрозрачности. Ожидаемый формат - 8 байтовых беззнаковых целых на пиксель. Как я могу сделать это с ImageMagick? Я пробовал convert image.png image.a, но файл .a, похоже, не содержит правильных данных.

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

Ответы [ 2 ]

3 голосов
/ 13 декабря 2012

Попробуйте это:

$ convert -size 16x16 xc:none -draw "stroke black fill red circle 8,8 4,4" circle_on_transparent_bg.png

$ convert circle_on_transparent_bg.png -channel A -separate -depth 8 gray:image_alpha.raw

$ od -t x1 image_alpha.raw 
0000000    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 
*
0000040    00  00  00  00  00  01  20  89  be  8a  20  01  00  00  00  00
0000060    00  00  00  00  10  ff  ff  ff  ff  ff  ff  ff  12  00  00  00
0000100    00  00  00  13  ff  ff  ff  ff  ff  ff  ff  ff  ff  11  00  00
0000120    00  00  01  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  01  00
0000140    00  00  21  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  1f  00
0000160    00  00  8d  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  89  00
0000200    00  00  c0  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  00
0000220    00  00  8b  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  93  00
0000240    00  00  21  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  24  00
0000260    00  00  01  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  01  00
0000300    00  00  00  10  ff  ff  ff  ff  ff  ff  ff  ff  ff  11  00  00
0000320    00  00  00  00  12  ff  ff  ff  ff  ff  ff  ff  10  00  00  00
0000340    00  00  00  00  00  01  23  91  c4  8e  22  01  00  00  00  00
0000360    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0000400
2 голосов
/ 09 декабря 2011

Попробуйте это:

convert image.png -channel A -separate image_alpha.png

Ну, это довольно просто: вы берете альфа-канал и сохраняете его в другой файл. Выходные данные скрипта с 1-канальным png (8 байт на пиксель).

...