使用ImageMagick导出原始alpha
我需要从图像中提取原始alpha,以便将其传递给应用程序用作不透明度遮罩。预期格式为每像素8字节无符号整数。我怎样才能用ImageMagick做到这一点?我尝试了使用ImageMagick导出原始alpha,imagemagick,alpha,Imagemagick,Alpha,我需要从图像中提取原始alpha,以便将其传递给应用程序用作不透明度遮罩。预期格式为每像素8字节无符号整数。我怎样才能用ImageMagick做到这一点?我尝试了转换image.png image.a,但是.a文件似乎没有正确的数据 使用ImageMagick提取alpha的最佳方法是什么?理想情况下,这将适用于支持alpha或透明度的任何输入图像格式 试试这个: convert image.png -channel A -separate image_alpha.png $ convert
转换image.png image.a
,但是.a文件似乎没有正确的数据
使用ImageMagick提取alpha的最佳方法是什么?理想情况下,这将适用于支持alpha或透明度的任何输入图像格式 试试这个:
convert image.png -channel A -separate image_alpha.png
$ 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
好吧,这很简单:您使用alpha通道并将其保存到另一个文件中。脚本输出为单通道png(每像素8字节)。尝试以下方法:
convert image.png -channel A -separate image_alpha.png
$ 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
这是一个很好的第一步,但我需要一个原始数据文件,而不是一个PNG。有什么想法吗?嗯,我不认为,这是现成的。您应该使用一个IM端口()编写自己的程序:它将提取alpha通道,将其写入内存中的图像,遍历其像素,并以所需格式将其写入文件。作为一种选择,考虑使用BMP——它的格式非常简单,主要由原始数据组成。