繁体   English   中英

使用Python + PIL或Imagemagick创建文本蒙版

[英]Create text mask using Python+PIL or Imagemagick

我需要以编程方式在纯色上创建文本蒙版,并使文本透明。

例如。

切

可以使用Imagemagick或Python映像库完成此操作吗?

这适用于我想要的内容,因此可以在透明背景上显示纯文本。

convert -size 720x405 xc:transparent -fill pink -gravity center -pointsize 150 -font font.ttf -draw "text 0,0 CUT" output.png

如果可能的话,我希望使用PIL / Pillow。

更新:

这是我到目前为止所拥有的...

font = ImageFont.truetype('font.ttf', 200, encoding='unic')
bg = Image.new('RGBA', (720, 404), '#0099ff')
mask = Image.new('1', (720, 404))

draw = ImageDraw.Draw(mask)
draw.text((0, 0), '#HELLO', font=font, fill='#ffffff')

bg.paste('#00000000', (0, 0), text)
bg.save('text.png', 'PNG')

但是,这将引发错误:

ValueError: unknown color specifier: '#00000000'

如果设置为有效颜色,则可以按预期工作,因此我知道我已经接近了,只是无法引用透明度。

更新:

最后,我只是创建了另一个空白图像并使用了它,而不是定义了颜色。 所以:

trans = Image.new('RGBA', (720, 404))
bg.paste(trans, (0, 0), mask)

这在PIL中相对简单。

这是一个很好的PIL参考

有很多方法可以做到-这是一种:

  1. 在RGBA模式下创建具有所需大小和背景颜色的图像。
  2. 在模式“ 1”中创建相同大小的空白图像用作遮罩
  3. 使用ImageDraw模块将文字写在蒙版图像上
  4. 使用Image.paste(颜色,框,蒙版)将颜色(0、0、0、0)粘贴到蒙版中存在文本的所有位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM