Tôi cố gắng thêm văn bản ở cuối hình ảnh và thực sự tôi đã thực hiện nó, nhưng trong trường hợp văn bản của tôi dài hơn thì chiều rộng hình ảnh được cắt từ cả hai bên, để đơn giản hóa như văn bản nằm trong nhiều dòng nếu văn bản dài hơn chiều rộng hình ảnh. Đây là mã của tôi:python PIL vẽ văn bản nhiều dòng trên hình ảnh
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')
Cảm ơn rất nhiều! chỉ cần sao chép và dán và nó hoạt động như một nét duyên dáng. Bạn là tốt nhất :) – user985541
'40' đại diện cho cái gì? – User
@Người dùng '40' đại diện cho các ký tự tối đa. Có nghĩa là nó sẽ cho phép tối đa hoặc 40 ký tự trước khi nó kết thúc tốt đẹp với một dòng mới. Nhưng nếu một từ là 10 ký tự và sau đó tiếp theo là 31 ký tự, nó sẽ bọc ngay sau từ đầu tiên vì nó không thể phù hợp với từ đầu tiên và thứ hai trên dòng. – teewuane