使用imagemagick根据渐变设置Alpha

时间:2019-03-27 11:36:51

标签: imagemagick

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

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

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

2 个答案:

答案 0 :(得分:2)

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

鉴于我有以下图像。 image.pngtransparent_mask.png

image transparent_mask

我们可以通过将值从遮罩图像复制到输入图像的alpha通道来设置图像的透明度(黑色是alpha,白色是不透明)。

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

output

答案 1 :(得分:0)

使用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通道并将背景色设置为透明开始。然后,它使用“-通道A”将以下操作仅应用于alpha通道。 “稀疏颜色”操作告诉它从最左边缘的透明像素“ 0,0”开始,然后在像素“%[w],0”渐变为不透明。 “%[w]”表示宽度或最右边。

尽管有许多方法可以实现您描述的效果,但是通过使用“ -sparse-color”,您可以轻松地在图像的任何位置进行渐变的起点和终点,而无需创建任何中间的遮罩图像。 / p>