如何将这个用于去除白色背景的 ImageMagick 命令转换为 Python Wand 模块?
How to convert this ImageMagick command for white background removal to Python Wand module?
我指的是@fmw42 和他精彩的 ImageMagic 命令,可以将白色背景变成透明背景。我修改了他的原始命令以使用最新版本的 ImageMagick。
magick test_imagemagick.jpg -fuzz 25% -fill none -draw "alpha 0,0 floodfill" -channel alpha -blur 0x1 -level 50x100% +channel result.png
这在命令行上很棒,但我很难理解如何在 Python Wand 中实现相同的功能。
这是我目前所拥有的,但并不多,因为我不知道如何映射来自 documentation.s
的信息
with Image(filename= 'test_imagemagick.jpg') as img:
img.fuzz = 0.25 * QUANTUM_RANGE # 25%
img.fill_color = 'transparent'
在 Python/Wand 中尝试此命令:
from wand.image import Image
from wand.drawing import Drawing
from wand.color import Color
from wand.display import display
with Image(filename='logo:') as img:
with img.clone() as copied:
copied.fuzz = 0.25 * img.quantum_range
with Drawing() as draw:
draw.fill_color = Color('transparent')
draw.matte(x=0.0, y=0.0, paint_method='floodfill')
draw(copied)
copied.alpha_channel = 'extract'
copied.blur(radius=0.0, sigma=2)
copied.level(black=0.5, white=1, gamma=1.0)
img.composite(copied, left=0, top=0, operator='copy_opacity')
img.format='png'
display(img)
img.save(filename='logo_transparent_antialiased.png')
我指的是@fmw42 和他精彩的 ImageMagic 命令,可以将白色背景变成透明背景。我修改了他的原始命令以使用最新版本的 ImageMagick。
magick test_imagemagick.jpg -fuzz 25% -fill none -draw "alpha 0,0 floodfill" -channel alpha -blur 0x1 -level 50x100% +channel result.png
这在命令行上很棒,但我很难理解如何在 Python Wand 中实现相同的功能。
这是我目前所拥有的,但并不多,因为我不知道如何映射来自 documentation.s
的信息with Image(filename= 'test_imagemagick.jpg') as img:
img.fuzz = 0.25 * QUANTUM_RANGE # 25%
img.fill_color = 'transparent'
在 Python/Wand 中尝试此命令:
from wand.image import Image
from wand.drawing import Drawing
from wand.color import Color
from wand.display import display
with Image(filename='logo:') as img:
with img.clone() as copied:
copied.fuzz = 0.25 * img.quantum_range
with Drawing() as draw:
draw.fill_color = Color('transparent')
draw.matte(x=0.0, y=0.0, paint_method='floodfill')
draw(copied)
copied.alpha_channel = 'extract'
copied.blur(radius=0.0, sigma=2)
copied.level(black=0.5, white=1, gamma=1.0)
img.composite(copied, left=0, top=0, operator='copy_opacity')
img.format='png'
display(img)
img.save(filename='logo_transparent_antialiased.png')