2

我需要以编程方式在纯色上创建一个文本蒙版,文本是透明的。

例如。

切

这可以使用 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)
4

1 回答 1

3

这在 PIL 中比较简单。

这是一个很好的PIL 参考

有很多方法可以做到 - 这里有一个:

  1. 在 RGBA 模式下创建具有所需大小和背景颜色的图像。
  2. 在模式“1”中创建一个相同大小的空白图像用作蒙版
  3. 使用 ImageDraw 模块在蒙版图像上写入文本
  4. 使用 Image.paste(color, box, mask) 将颜色 (0, 0, 0, 0) 粘贴到掩码中存在的文本的任何位置。
于 2013-08-08T14:02:58.400 回答