画像の下にテキストを追加しようとしましたが、実際にはそれをやったことがありますが、テキストの長さが長い場合は画像の幅が両側から切り取られてしまいます画像の幅よりも長い場合は、複数の行になるようにテキストを変換します。ここに私のコードは次のとおりです。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文字の場合は、最初の単語の直後に折り返されます。最初の単語と2番目の単語が一致しないためです。 – teewuane