【问题标题】:Set alpha according to gradient with imagemagick使用 imagemagick 根据渐变设置 alpha
【发布时间】:2019-03-27 11:36:50
【问题描述】:

是否可以使用 ImageMagick 根据渐变设置图像的 Alpha 通道?

我希望图像左边框上的像素为 100% 透明,右边框上的像素为 100% 不透明,中间的像素具有逐渐降低的透明度值。

或者在更一般的情况下 - 给定一张灰度图像,将另一张图像的 Alpha 通道设置为 B&W 值的函数 (black = 100% alpha, white 0% alpha)。

【问题讨论】:

    标签: imagemagick


    【解决方案1】:

    借助 ImageMagick,您可以使用 -sparse-color 将渐变仅应用于 Alpha 通道以获得您描述的结果。

    convert in.png -alpha set -background none -channel A \
        -sparse-color barycentric "0,0 none %[w],0 white" +channel out.png
    

    该命令首先激活 Alpha 通道并将背景颜色设置为透明。然后它使用-channel A 将以下操作仅应用于 Alpha 通道。 -sparse-color 操作告诉它从最左边缘的透明像素0,0 开始,并在像素%[w],0 处渐变为不透明。 %[w] 表示宽度或最右边。

    虽然有很多方法可以实现您所描述的效果,但通过使用-sparse-color,您可以轻松地在图像上的任何位置开始和结束渐变,而无需创建任何中间蒙版图像。

    【讨论】:

      【解决方案2】:

      简单。您可以使用 -composite CopyOpacity 从渐变蒙版中设置 Alpha 通道。

      鉴于我有以下图片。 image.png & transparent_mask.png

      我们可以通过将掩码图像中的值复制到输入图像的 Alpha 通道来设置图像透明度(其中黑色为 Alpha,白色为不透明)。

      convert image.png transparent_mask.png -compose CopyOpacity -composite output.png
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-30
        • 1970-01-01
        • 2015-10-07
        • 2012-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多