首页 文章

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

提问于
浏览
5

我有一些PNG文件,我希望转换为256色(即类似GIF) . 每个图像都有透明度,但是当我尝试转换时,我总是在最终图像上出现黑色背景 .

这是我当前的命令:

convert file.png -colors 255 file256.png

我认为应该适用于PNG) . 我已经尝试了许多其他选项,例如 -background none-channel RGBA-matte ,但一切都没有 .

有趣的是,这个命令在转换为灰度时确实有效:

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

它保持透明的背景 . 但是用 -colors 256 替换 -colorspace gray 不起作用 .

2 回答

  • 6

    使用255而不是256种颜色的原因是需要为"binary" / "boolean"透明保留一种颜色,即该颜色的所有像素都被解释为完全透明 . 那里(通常)不像是具有256色/调色板图像的alpha通道 . 作为参考,您可能需要阅读有关Color Quantization and TransparencyGIF Boolean Transparency的ImageMagick用法部分 . 也就是说,这应该将带有alpha通道的32位真彩色PNG转换为带有调色板的8位PNG,其中输入图像中完全透明的所有像素在输出图像中也是完全透明的:

    convert file.png png8:file256.png
    

    png8 指示ImageMagick编写类似GIF的"8-bit indexed with optional binary transparency" PNG并暗示使用255 "real"颜色 .

  • 0

    您是否尝试过-colorspace透明以保留Alpha通道?

相关问题