1

编辑: 代码的工作,但是我不得不书写文字图像在Python 2.7使用PIL

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”将以黑色书写。

我有一个试图写入“Hello World”到jpg图像的python脚本,但是当我保存文件时没有写入任何文本,有什么想法? 我正在使用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') 

我也注意到,当保存图像的颜色变成灰色的规模,为什么呢?

回答

3

以下代码适用于我,但我使用了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

+0

您好我意识到,我做我的错,有 draw.text((30,10)的 “Hello World”,(0,0,0,255),字体=字体)用白色而不是黑色书写。 感谢您的协助。 – RedQuirk