我嘗試在圖像底部添加文本,實際上我已經完成了它,但是如果我的文本長度較長,則圖像寬度會從兩側剪切,以簡化我的工作如果文本長度大於圖像寬度,則多行文本。這裏是我的代碼:python PIL在圖像上繪製多行文本
FOREGROUND = (255, 255, 255)
WIDTH = 375
HEIGHT = 50
TEXT = 'Chyba najwyższy czas zadać to pytanie na śniadanie \n Chyba najwyższy czas zadać to pytanie na śniadanie'
font_path = '/Library/Fonts/Arial.ttf'
font = ImageFont.truetype(font_path, 14, encoding='unic')
text = TEXT.decode('utf-8')
(width, height) = font.getsize(text)
x = Image.open('media/converty/image.png')
y = ImageOps.expand(x,border=2,fill='white')
y = ImageOps.expand(y,border=30,fill='black')
w, h = y.size
bg = Image.new('RGBA', (w, 1000), "#000000")
W, H = bg.size
xo, yo = (W-w)/2, (H-h)/2
bg.paste(y, (xo, 0, xo+w, h))
draw = ImageDraw.Draw(bg)
draw.text(((w - width)/2, w), text, font=font, fill=FOREGROUND)
bg.show()
bg.save('media/converty/test.png')
非常感謝!只需複製和粘貼,它就像一個魅力。你是最好的:) – user985541
'40'代表什麼? – User
@用戶'40'代表最大字符數。這意味着它將允許最多或40個字符,然後再換行。但是,如果一個單詞是10個字符,然後下一個單詞是31個單詞,它將在第一個單詞之後換行,因爲它不能適合該行的第一個和第二個單詞。 – teewuane