2015-12-29 53 views
3

嗨,我試圖在圖像上寫文字。但文字溢出。有什麼方法可以將這些文本內容包裝到圖像中?給定魔杖 - 文字環繞 - 基於圖像文件大小

from wand.image import Image 
from wand.drawing import Drawing 
from wand.color import Color 

with Image(filename='/home/path/image.jpg').clone() as img: 
    print('width =', img.width) 
    print('height =', img.height) 
    quote = input('quote:') 
    with Drawing() as draw: 
     draw.font = 'wandtests/assets/League_Gothic.otf' 
     draw.fill_color=Color('red') 
     draw.text_alignment= 'center' 
     img.font_size=50 
     draw.text(int(img.width/2),int(img.height/2), quote) 
     print(draw.get_font_metrics(img,quote)) 
     draw(img) 
     print('text drawn') 
    img.save(filename='/home/path/image01.jpg') 

輸入是:

"Success makes so many people hate you. I wish it wasn't that way. It would be wonderful to enjoy success without seeing envy in the eyes of those around you." 

output image

回答

0

一個快速和骯髒的解決方案是在字符串中兩塊分割:

draw.text(int(img.width/3),int(img.height/3), quote[0:len(quote)//2]) 
draw.text(int(2 * img.width/3),int(2 * img.height/3), quote[len(quote)//2:-1]) 

劈裂3個或更多可如果文本仍然很長,那麼這是必需的。

2

而不是繪圖文本,使用caption方法Image繼承BaseImage