【问题标题】:How to show text in image using pillow如何使用枕头在图像中显示文本
【发布时间】:2019-03-27 23:45:22
【问题描述】:

我最近开始学习如何在 python 中使用 Pillow,这就是我目前所掌握的(代码如下)。

如果我运行它,我会收到以下错误:

ValueError:无法确定区域大小;使用四件套

我已尝试删除 base.paste 行,这会删除错误但不显示任何文本。

我希望这里有人可以帮助我解决此问题,以便文本显示在图像中。

@app.route("/imgtest/")
def imgtest():
    f_text = textwrap.fill(request.args.get('text'), 10)
    base = Image.open(config.assetsfolder+'/'+'facts.bmp').convert("RGBA")
    txtO = Image.new("RGBA", base.size, (255, 255, 255, 0))
    font = ImageFont.truetype(config.assetsfolder+'/'+'fonts'+'/'+'Roboto-Bold.ttf', 15)

    canv = ImageDraw.Draw(txtO)
    canv.text((95, 283), f_text, font=font, fill="Black")
    base.paste(f_text)
    base.save(config.assetsfolder+'/'+'done'+'/'+'boop.png')
    return send_file(config.assetsfolder+'/'+'done'+'/'+'boop.png')```

How do i show the text in the image?

【问题讨论】:

    标签: python-3.x python-imaging-library


    【解决方案1】:

    如果您使用的是pillow 4.0,我相信这将是枕头版本的问题。在您的 cmd 中尝试以下操作:

     pip uninstall pillow
     pip install Pillow==3.4.2 
    

    【讨论】:

    • 感谢您的回答我试过这个并得到这个大错误link to hastebin
    • 你在使用 Ubuntu 吗?
    • 我正在使用 Debian 9 和 python3.7
    【解决方案2】:

    通过添加一些随机代码并更好地阅读文档来玩了一下

    @app.route("/fact/")
    def fact():
        filename=(config.assetsfolder+'/'+'facts.bmp')
        args=request.args.get('text')
        font = ImageFont.truetype(config.assetsfolder+'/'+'fonts'+'/'+'Roboto-Bold.ttf', size=20)
        text = wrap(font, args, 340)
    
        im = Image.open(filename)
        text_layer = Image.new('RGBA', im.size)
    
        d = ImageDraw.Draw(text_layer)
    
        location = (90, 600)
        text_color = (20, 20, 20)
        d.text(location, text, font=font, fill=text_color)
        text_layer = text_layer.rotate(-13, resample=Image.BICUBIC)
        im.paste(text_layer, (0, 0), text_layer)
        im.save(config.assetsfolder+'/'+'done'+'/'+'fact.png')
        return send_file(config.assetsfolder+'/'+'done'+'/'+'fact.png')
    

    这为我完成了这项工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-26
      • 2015-03-08
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      相关资源
      最近更新 更多