如何使用 Wand 使图像的背景透明?
How to make the background of an image transparent with Wand?
我有一个白色背景的图像,想将白色背景转换为透明。我如何使用 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)
需要记住的重要一点是 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")
也许这个例子中20%的fuzz太过激进了
我有一个白色背景的图像,想将白色背景转换为透明。我如何使用 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)
需要记住的重要一点是 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")
也许这个例子中20%的fuzz太过激进了