如何使用Wand使图像的背景透明?

时间:2015-09-23 10:51:25

标签: python imagemagick wand

我的图像带有白色背景,并希望将白色背景转换为透明。我怎么能用魔杖做到这一点?

执行此操作的ImageMagick命令是:

convert ~/Desktop/cat_with_white_gb.png -transparent white ~/Desktop/cat_with_transparent_bg.png

我试过了:

import urllib2

fg_url = 'http://i.stack.imgur.com/Mz9y0.jpg'
fg = urllib2.urlopen(fg_url)

with Image(file=fg) as img:
    img.background_color = Color('transparent')
    img.save(filename='test.png')

with Image(file=fg) as fg_img:
    with Color('#FFF') as white:
        fg_img.transparent_color(white, 0.0)

1 个答案:

答案 0 :(得分:3)

要记住的重要一点是JPEG源图像不会有alpha通道。您可以通过定义wand.image.Image.alpha_channel或仅将图像格式设置为可以使用透明度的内容来添加此内容。

from wand.image import Image
from wand.color import Color

with Image(filename="http://i.stack.imgur.com/Mz9y0.jpg") as img:
    img.format = 'png'
    with Color('#FDFDFD') as white:
        twenty_percent = int(65535 * 0.2)  # Note: percent must be calculated from Quantum
        img.transparent_color(white, alpha=0.0, fuzz=twenty_percent)
    img.save(filename="/tmp/Mz9y0.png")

transparant cat

在这个例子中,20%的模糊可能是激进的