在魔杖中设置图像不透明度的最佳方法是什么?
我正在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”对象不可调用
我也尝试了以下代码,但产生了错误。
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:parameter 2::error type
在魔杖中,用于将每个Alpha通道像素设置为某个值(例如0.2)的最紧凑的代码是什么?
答案 0 :(得分:0)
多亏了fmw42的评论,现在我有了一个Wand代码块,用于统一设置Alpha通道的像素值。
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')
问题已经回答。