wand - 文本换行 - 基于图像文件大小
wand - text wrapping - based on the image file size
您好,我正在尝试在图像上写文字。但是文字溢出来了。有什么办法可以将此类文本内容包裹起来以适合图像?
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."
一个快速而肮脏的解决方案是将字符串分成两部分:
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 份或更多份。
不绘制文本,而是使用 Image
从 BaseImage
继承的 caption
方法。
您好,我正在尝试在图像上写文字。但是文字溢出来了。有什么办法可以将此类文本内容包裹起来以适合图像?
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."
一个快速而肮脏的解决方案是将字符串分成两部分:
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 份或更多份。
不绘制文本,而是使用 Image
从 BaseImage
继承的 caption
方法。