【问题标题】:wand - text wrapping - based on the image file sizewand - 文本换行 - 基于图像文件大小
【发布时间】:2015-12-29 19:28:47
【问题描述】:

您好,我正在尝试在图像上写入文字。但文字溢出。有什么方法可以将此类文本内容包装到图片中?

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

【问题讨论】:

    标签: python python-3.x wand magickwand


    【解决方案1】:

    使用ImageBaseImage继承的caption方法而不是绘制文本。

    【讨论】:

      【解决方案2】:

      一个快速而肮脏的解决方案是将字符串分成两部分:

      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 或更多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-20
        • 1970-01-01
        • 2014-01-20
        • 2017-07-17
        相关资源
        最近更新 更多