用python棒合成两个图像

时间:2013-02-28 19:56:13

标签: python imagemagick composition magickwand wand

我需要使用python wand(用于python的image-magick绑定)来创建合成图像,但是除了简单地将前景图像粘贴到背景图像之外,我还要弄清楚如何做任何事情。 。我想要的是,因为我有两个像:

foreground

enter image description here

两个jpegs,我想删除猫的白色背景,然后将其粘贴在房间里。其他python图像模块的答案,比如PIL,也很好,我只需要一些东西来自动化合成过程。提前谢谢。

2 个答案:

答案 0 :(得分:11)

您可以使用Image.composite()方法实现此目的:

import urllib2

from wand.image import Image
from wand.display import display


fg_url = 'http://i.stack.imgur.com/Mz9y0.jpg'
bg_url = 'http://i.stack.imgur.com/TAcBA.jpg'

bg = urllib2.urlopen(bg_url)
with Image(file=bg) as bg_img:
    fg = urllib2.urlopen(fg_url)
    with Image(file=fg) as fg_img:
        bg_img.composite(fg_img, left=100, top=100)
    fg.close()
    display(bg_img)
bg.close()

答案 1 :(得分:1)

对于那些在未来遇到这种情况的人来说,你可能想做的就是改变白色'在进行构图之前,猫图像中的颜色要透明。这应该可以通过< transparent_color()'来实现。图像的方法。类似于' fg_img.transparent_color(wand.color.Color('#FFF')),可能还有一个模糊参数。

请参阅: http://www.imagemagick.org/Usage/compose/ http://docs.wand-py.org/en/latest/wand/image.html