【发布时间】:2019-02-20 18:40:52
【问题描述】:
在 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) 类型错误: 'NoneType' 对象不可调用
我也尝试了以下代码,但它产生了错误。
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)的最紧凑的代码是什么?
【问题讨论】:
-
对不起,我不知道魔杖。但是,一旦您将 alpha 通道放入图像中,请使用等效的选择 alpha 通道,然后使用 -evaluate set 20% 然后重新打开所有通道。参见docs.wand-py.org/en/0.5.1/wand/image.html,例如 -evaluate 集。在命令行中,这将是
convert image.png -alpha set -channel a -evaluate set 20% +channel result.png
标签: wand