ImageMagick:如何减少颜色但保持透明度?

ImageMagick:如何减少颜色但保持透明度?,imagemagick,Imagemagick,我有一些PNG文件,我想转换成256色(如GIF)。每个图像都有透明度,但当我尝试转换时,结果图像上总是有黑色背景 这是我当前的命令: convert file.png -colors 255 file256.png 我使用255种颜色,因为我读到alpha通道需要一种颜色(尽管我不认为这应该适用于PNG)。我尝试了许多其他选项,如-background none、-channel RGBA和-matte,但都没有效果 有趣的是,该命令在转换为灰度时确实起作用: convert file.pn

我有一些PNG文件,我想转换成256色(如GIF)。每个图像都有透明度,但当我尝试转换时,结果图像上总是有黑色背景

这是我当前的命令:

convert file.png -colors 255 file256.png
我使用255种颜色,因为我读到alpha通道需要一种颜色(尽管我不认为这应该适用于PNG)。我尝试了许多其他选项,如
-background none
-channel RGBA
-matte
,但都没有效果

有趣的是,该命令在转换为灰度时确实起作用:

convert file.png -channel RGBA -matte -colorspace gray file256.png

它保持了透明的背景。但是将
-colorspace gray
替换为
-colorspace 256
不起作用。

您是否尝试过使用-colorspace transparent来保留Alpha通道?

使用255而不是256色的原因是需要为“二进制”/“布尔”透明度保留一种颜色,即,该颜色的所有像素被解释为完全透明。(通常)没有像alpha通道这样的东西,具有256色/调色板图像。作为参考,您可能需要阅读有关和的ImageMagick用法部分。也就是说,这应该将带有alpha通道的32位真彩色PNG转换为带有调色板的8位PNG,其中输入图像中完全透明的所有像素在输出图像中也完全透明:

convert file.png png8:file256.png
png8
指示ImageMagick编写类似GIF的“8位索引,可选二进制透明度”PNG,并暗示使用255种“真实”颜色