我需要使用此命令来选择具有最大字体大小的文本,但经过无数次尝试后无济于事
我尝试过:
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)
我想要做的是扫描一段文字并返回不同的字体大小。 从那里,我将打印出最大字体的文本。
答案 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)