Image.ImageFont.ImageFont.getsize()命令如何工作?

时间:2019-04-14 07:13:29

标签: python python-imaging-library

我需要使用此命令来选择具有最大字体大小的文本,但经过无数次尝试后无济于事

我尝试过: Image.ImageFont.ImageFont.getsize(text) {text是其扫描通过的文本的变量}

  

[错误]:TypeError:getsize()缺少1个必需的位置参数:“文本”

Image.ImageFont.ImageFont.getsize(text = 'Lorem Ipsum')

  

[错误]:TypeError:getsize()缺少1个必需的位置参数:'self'

Image.ImageFont.ImageFont.getsize(self, text = 'Lorem Ipsum')

  

[错误]:NameError:名称“ self”未定义

我不太了解自我应该做什么/意味着什么。

侧面说明:如果代码应该查看文本并找到最大的字体大小,为什么我必须选择一个应确定其字体大小的单词,而不是整个段落都这样做?

这是我的全部代码:

from PIL import Image, ImageFont

image = Image.open('screenshot - copy.bmp') 

fontget = ImageFont.ImageFont.getsize(text = 'food')
print(fontget)

我想要做的是扫描一段文字并返回不同的字体大小。 从那里,我将打印出最大字体的文本。

1 个答案:

答案 0 :(得分:0)

[ERROR]: TypeError: getsize() missing 1 required positional argument: 'text'

上一个错误意味着您在类上调用了实例方法,而不是类的 instance 。您必须通过首先加载字体来实例化ImageFont类。

>>> from PIL import ImageFont
>>> font = ImageFont.load_default()
>>> font.getsize('hello world')
(66, 11)
  

侧面说明:如果代码应该查看文本并找到最大的字体大小,为什么我必须选择一个应确定其字体大小的单词,而不是整个段落都这样做?

这不是getsize()所做的。它返回PIL.ImageDraw.Draw.text()将以所选字体绘制的文本大小。

>>> font.getsize('h')
(6, 11)
>>> font.getsize('hello')
(30, 11)
>>> font.getsize('hello hello this is long text and you can see x gets bigger because the text gets wider')
(522, 11)