【发布时间】:2019-03-27 11:36:50
【问题描述】:
是否可以使用 ImageMagick 根据渐变设置图像的 Alpha 通道?
我希望图像左边框上的像素为 100% 透明,右边框上的像素为 100% 不透明,中间的像素具有逐渐降低的透明度值。
或者在更一般的情况下 - 给定一张灰度图像,将另一张图像的 Alpha 通道设置为 B&W 值的函数 (black = 100% alpha, white 0% alpha)。
【问题讨论】:
标签: imagemagick
是否可以使用 ImageMagick 根据渐变设置图像的 Alpha 通道?
我希望图像左边框上的像素为 100% 透明,右边框上的像素为 100% 不透明,中间的像素具有逐渐降低的透明度值。
或者在更一般的情况下 - 给定一张灰度图像,将另一张图像的 Alpha 通道设置为 B&W 值的函数 (black = 100% alpha, white 0% alpha)。
【问题讨论】:
标签: imagemagick
借助 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,您可以轻松地在图像上的任何位置开始和结束渐变,而无需创建任何中间蒙版图像。
【讨论】: