gpt4 book ai didi

python - 使用 PIL 在 python 2.7 中将文本写入图像

转载 作者:行者123 更新时间:2023-11-28 22:29:45 30 4
gpt4 key购买 nike

编辑:代码可以正常工作,但是我有

draw.text((30,10), "Hello World", (255, 255, 255, 255),font=font)

将“Hello World”写成白色。如果你把它改成

draw.text((30,10), "Hello World", (255, 255, 255, 255),font=font)

输入代码“Hello world”将被写成黑色。

我有一个 python 脚本,它试图将“Hello World”写入 jpg 图像,但是当我保存文件时,没有写入任何文本,有什么想法吗?我正在使用 python 2.7 和 Pillow。

我也看过这个文档:http://pillow.readthedocs.io/en/3.1.x/reference/ImageDraw.html

代码:

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

pattern = Image.open("DANK.jpg", "r").convert('RGBA')

size = width, height = pattern.size
draw = ImageDraw.Draw(pattern,'RGBA')
font = ImageFont.truetype("Font.ttf", 3)

draw.text((30,10), "Hello World", (255, 255, 255, 255),font=font)
pattern.save('sample-out.jpg')

我还注意到,当图像被保存时,颜色变成灰度,为什么会这样?

最佳答案

以下代码对我有用,但我使用的是 python 3 和 png。我将图像放在与代码相同的目录中,然后在图像上写了一段文字。

from PIL import Image, ImageDraw, ImageFont
# get an image
base = Image.open('lena.png').convert('RGBA')

# make a blank image for the text, initialized to transparent text color
txt = Image.new('RGBA', base.size, (255,255,255,0))

# get a font
fnt = ImageFont.truetype('Pillow/Tests/fonts/FreeMono.ttf', 40)
# get a drawing context
d = ImageDraw.Draw(txt)

# draw text, half opacity
d.text((100,100), "Hello", font=fnt, fill=(255,255,255,128))
# draw text, full opacity
d.text((100,160), "World", font=fnt, fill=(255,255,255,255))

out = Image.alpha_composite(base, txt)

out.show()

我没有字体,但它似乎也可以与 python 2.7 和 jpg 图像一起使用,就像您的代码一样(但我没有字体)

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

pattern = Image.open("DANK.jpg", "r").convert('RGBA')

size = width, height = pattern.size
draw = ImageDraw.Draw(pattern,'RGBA')
#font = ImageFont.truetype("Font.ttf", 3)

draw.text((30,10), "Hello World", (0, 0, 0, 0))#,font=font)
pattern.save('sample-out.jpg')

enter image description here

与您的代码(使用我的 Ubuntu 16.04)最相似的是以下代码,它也在图像上呈现文本。

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

pattern = Image.open("DANK.jpg", "r").convert('RGBA')

size = width, height = pattern.size
draw = ImageDraw.Draw(pattern,'RGBA')
font = ImageFont.truetype("Pillow/Tests/fonts/FreeMono.ttf", 100)

draw.text((300,10), "Hello World", (0, 0, 0, 0),font=font)
pattern.save('sample-out.jpg')

enter image description here

关于python - 使用 PIL 在 python 2.7 中将文本写入图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42886066/

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