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