【问题标题】:ImageMagick: how to reduce colors but keep transparency?ImageMagick:如何减少颜色但保持透明度?
【发布时间】:2011-02-03 13:55:49
【问题描述】:

我有一些 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

它保持透明背景。但是用-colors 256替换-colorspace gray是行不通的。

【问题讨论】:

    标签: imagemagick


    【解决方案1】:

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

    convert file.png png8:file256.png
    

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-22
        • 1970-01-01
        相关资源
        最近更新 更多