【问题标题】:Python wand: composite image with transparencyPython wand:具有透明度的合成图像
【发布时间】:2015-05-21 15:06:03
【问题描述】:

我正在尝试用 Wand 合成两个图像。计划是将图像 B 放在 A 的右侧,并使 B 透明 60%。使用 IM 可以这样做:

composite -blend 60 -geometry +1000+0 b.jpg a.jpg new.jpg

但是使用 Wand 我只能通过 composite() 方法看到以下内容:operator, left, top, width, height, image

Wand 可以吗?

【问题讨论】:

    标签: python imagemagick wand


    【解决方案1】:

    为了并排完成-geometry +1000+0,您可以将图像并排合成到新图像上。对于这个例子,我使用Image.composite_channel 处理所有内容。

    with Image(filename='rose:') as A:
        with Image(filename='rose:') as B:
            B.negate()
            with Image(width=A.width+B.width, height=A.height) as img:
                img.composite_channel('default_channels', A, 'over', 0, 0 )
                img.composite_channel('default_channels', B, 'blend', B.width, 0 )
    

    请注意,复合运算符在上面的示例中并没有太大影响。

    要实现-blend 60%,您将创建一个 60% 的新 Alpha 通道,并将其“复制”到源不透明度通道。

    我将创建一个辅助函数来说明这种技术。

    def alpha_at_60(img):
        with Image(width=img.width,
                   height=img.height,
                   background=Color("gray60")) as alpha:
            img.composite_channel('default_channels', alpha, 'copy_opacity', 0, 0)
    
    with Image(filename='rose:') as A:
        with Image(filename='rose:') as B:
            B.negate()
            with Image(width=A.width+B.width, height=A.height) as img:
                img.composite_channel('default_channels', A, 'over', 0, 0 )
                alpha_at_60(B) #  Drop opacity to 60%
                img.composite_channel('default_channels', B, 'blend', B.width, 0 )
    

    【讨论】:

    • 使用 Wand 0.6.2 和 ImageMagick 7.0 运行此代码时,我在 img.composite_channel('default_channels', alpha, 'copy_opacity', 0, 0) 上收到 ValueError: tuple.index(x): x not in tuple 错误,错误消息中引用了 COMPOSITE_OPERATORS.index(operator)
    • copy_opacity 在 ImageMagick-7 中重命名为 copy_alpha。这个答案来自 5 年前的 IM-7 发布之前。
    • @emcconville 知道为什么这会为我生成一个多页 tiff 文件吗?
    猜你喜欢
    • 1970-01-01
    • 2011-10-14
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 2012-03-06
    • 2019-05-18
    • 2015-05-15
    相关资源
    最近更新 更多