2012-07-09 182 views
4

我很难找到如何设置一个颜色(在我的情况下黑色)是透明的GIF使用ImageMagick。我怎样才能做到这一点的一套现有的GIF图像?如何使用ImageMagick将颜色设置为GIF透明?

我试过这个选项,但它似乎并没有做任何事情:

mogrify -transparent-color black -transparent black *.gif 

我已经通过这种阅读,但它似乎在什么实际上使颜色有点莫名其妙的GIF变得透明:http://www.imagemagick.org/Usage/formats/#boolean_trans

例如:

请注意,设置“ - 透明色”没有任何透明度 添加到一个GIF图片,也没有将指定的颜色变成透明的 。所有选项都是指定在颜色表中为 添加颜色索引的颜色,该颜色索引在GIF图像中代表 透明颜色。

如果要将特定(确切)颜色更改为透明,则使用 然后使用“透明”颜色替换运算符。

但后来......

使用+透明反转匹配的像素。那就是使所有 不匹配的颜色透明。

-opaque操作符与-transparent完全相同,但用当前-fill颜色设置代替 匹配颜色,而不是 透明。然而,透明运营商也确保 图像具有启用的Alpha通道,按照“-alpha set”设置,并且不要求 修改“-channel”以启用alpha通道处理。

请注意,这并未将颜色定义为用于颜色映射图像格式(如GIF)的'透明度 颜色'。用于那个用途 -transparent-color

+0

您的图像最初是GIF还是您通过重命名创建的? – 2012-07-09 06:00:57

+0

该图像最初是PNG,但我现在已将它们全部转换为GIF。 – 2012-07-09 06:02:46

+0

你使用哪个命令行 – 2012-07-09 06:03:32

回答

6

我想从使用mogrify向您发出警告。 mogrify确实通过覆盖原来的图像来转换图像。如果出现任何问题,你的图像就消失了。

宁可使用convert。在确定转换正常后,您可以随时删除原始图像。

为了使黑色像素透明,使用此:

convert orig.gif -transparent black transp.gif 

作品完美的我。

我的IM版本:ImageMagick 6.7.8-0 2012-07-04 Q16。你的是啥呢?

如果它仍然不适合你,那么GIF中的'黑'可能不是黑色,而只是非常黑的灰色。 ImageMagick也有工具来枚举GIF中的所有颜色。下面的两个命令可以帮助你在这种情况下:

identify \ 
    -format "%f: - Uniq Colors: %k - Image transparency channel enabled: %A - Image Depth: %z %c\n" \ 
    *.gif 

convert \ 
    *.gif \ 
    -format "%f :\n%c\n\n" \ 
    histogram:info: 

黑色的使用可以通过名称“黑”来识别,通过RGB值“(0,0,0 )'以及十六进制值'#000000'。所以,纯黑色应该出现在最后一个命令的输出,就像这样:

5000: ( 0, 0, 0) #000000 black 

深灰色,例如可以是:

100: (14, 14, 14,255) #0E0E0E srgba(14,14,14,1) 
2100: ( 1, 1, 1,255) #010101 srgba(1,1,1,1) 

一旦在你的GIF透明度启用,最后的命令应该显示每个颜色4个值的元组,最后一个值代表Alpha通道。您以前的黑色会出现在输出中,如下所示:

5000: ( 0, 0, 0, 0) #00000000 none 
-2

尝试 - 背景颜色一旦你产生它的GIF。

请检查http://www.imagemagick.org/script/mogrify.php URL是否适用于mogrify和后台选项。看到下面的图片。

enter image description here

+0

对不起,你能给我一个使用的例子吗? – 2012-07-09 06:05:42

+0

提供了示例。 – 2012-07-09 06:23:14

+0

“-background color”如何使颜色透明?它不会在任何地方说你的链接。 – 2012-07-09 06:33:24