使用ImageMagick

时间:2017-08-24 04:05:41

标签: image-processing imagemagick imagemagick-convert

是否可以使用ImageMagick命令获取特定通道的位深度?

我可以看到convert :rose -verbose info:的各个频道深度,但我想知道是否有一个技巧只能打印alpha深度。

我这样做的原因是因为我正在尝试编写一个脚本来判断图像是否为:

  • 不支持透明度(如JPEG)
  • 仅支持ON / OFF透明度(如GIF)
  • 支持> 1位透明度(如PNG)

我可以使用identify %[opaque] :rose检查图像是否完全不透明,并且认为我可以通过检查alpha位深度是否大于1来检查透明度类型

2 个答案:

答案 0 :(得分:1)

在Imagemagick中获取alpha通道的位深度,请尝试

convert transparent_image -alpha extract -format "%z\n" info:

convert transparent_image -alpha extract -format "%[depth]\n" info:

请参阅http://www.imagemagick.org/script/escape.php

例如:

convert logo: -transparent white -alpha extract -format "%z" info:

8

但是,这实际上可能是二进制的,但列为8位。

因此,您可能需要查看直方图或唯一颜色以查看存在多少实际颜色。

convert logo: -transparent white -alpha extract -format "%[colors]\n" info:

2

答案 1 :(得分:1)

通过一些痛苦的搜索和反复试验,我可能已经弄明白了。如果我跑

convert rose: -channel A -separate -format %[fx:z] info:-

我得到alpha通道中的位数。对于PNG,它似乎打印8,对于JPEG和GIF,它打印1。