设置魔杖中图像不透明度的最佳方法?

时间: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)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)的最紧凑的代码是什么?

1 个答案:

答案 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')

问题已经回答。