gpt4 book ai didi

python - 使用 Python+PIL 或 Imagemagick 创建文本 mask

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:34 25 4
gpt4 key购买 nike

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

例如。

cut

可以使用 Imagemagick 或 Python 图像库来完成吗?

这与我想要的相反,透明背景上的纯文本。

convert -size 720x405 xc:transparent -fill pink -gravity center -pointsize 150 -font font.ttf -draw "text 0,0 CUT"输出.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:未知颜色说明符:'#00000000'

如果我设置为有效颜色,它会按预期工作,所以我知道我很接近,只是无法引用透明度。

更新:

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

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

最佳答案

这在 PIL 中相对简单。

这是一个很好的PIL reference .

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

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

关于python - 使用 Python+PIL 或 Imagemagick 创建文本 mask ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18127706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com