【问题标题】:The best way to set the opacity of an image in Wand?在 Wand 中设置图像不透明度的最佳方法是什么?
【发布时间】: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


【解决方案1】:

感谢 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')

问题已回答。

【讨论】:

    猜你喜欢
    • 2021-09-19
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多