在 Wand 中设置图像不透明度的最佳方法?

The best way to set the opacity of an image in Wand?

在 Wand 中设置图像不透明度的最佳方法是什么?

我在 Windows 7 计算机上使用最新版本的 ImageMagick (7.0.8-27 Q16 x64 2019-02-09) 和 Wand (0.5.1)。

我不想使用 transparent_color()

我想为 alpha 混合叠加或合成设置图像的 alpha 通道。

transparentize() 不设置图像的不透明度。它只会使图像变暗。

我尝试了以下代码,但它产生了一个错误。

from wand.image import Image, CHANNELS
from wand.api import library

imageOverlay = Image(filename='mona-lisa.png')
imageOverlay.alpha_channel = 'opaque'
library.MagickSetImageOpacity(imageOverlay.wand, 0.2)
imageOverlay.save(filename='test_transparency.png')

library.MagickSetImageOpacity(wand_imageOverlay.wand, 0.2) TypeError: 'NoneType' object is not callable

我也试过下面的代码,但它产生了一个错误。

from wand.image import Image, CHANNELS
from wand.api import library

imageOverlay = Image(filename='mona-lisa.png')
imageOverlay.alpha_channel = 'opaque'
library.MagickEvaluateImage(imageOverlay.wand, 'multiply', 0.2, CHANNELS['alpha'])
imageOverlay.save(filename='test_transparency.png')

library.MagickEvaluateImage(wand_imageOverlay.wand, 'multiply', 0.2, CHANNEL S['alpha']) ctypes.ArgumentError: argument 2: : wrong type

在 Wand 中,将每个 alpha 通道像素设置为特定值(例如 0.2)的最紧凑代码是什么?

感谢fmw42的评论,现在我有了一个统一设置alpha通道像素值的Wand代码块。

from wand.image import Image

imageOverlay = Image(filename='mona-lisa.png')
imageOverlay.alpha_channel = True
imageOverlay.evaluate(operator='set', value=imageOverlay.quantum_range*0.2, channel='alpha')
imageOverlay.save(filename='test_transparency.png')

问题已回答。