Pillow 移除或更改了 FreeTypeFont.getsize() 方法

w, h = self.font.getsize(label) # text width, height

AttributeError: 'FreeTypeFont' object has no attribute 'getsize'

在Pillow 项目的变更日志里可以查到哪个版本移除了 getsize() 方法,Pillow仓库:

Releases · python-pillow/Pillow · GitHub

因为Pillow 10.0.0 版本移除了 ImageFont.getsize() 方法,导致你在代码中使用 w, h = self.font.getsize(label) 时,会产生 AttributeError: 'FreeTypeFont' object has no attribute 'getsize' 这样的错误。

原因

  • 方法移除ImageFont.getsize() 方法及相关功能在 Pillow 10.0.0 版本中被正式移除。这意味着任何依赖该功能的代码,在使用 10.0.0 版本或以上版本运行时,都会因为方法不存在而报错。

解决方案

  • 使用 getbbox 方法 :这是替代 getsize 的方法,能够提供文本的边界框信息。

    你可以通过以下方式调整代码:

python 复制代码
# 旧代码
w, h = self.font.getsize(label)  # text width, height

# 新代码,用 getbbox() 替代
bbox = self.font.getbbox(label)
w, h = bbox[2] - bbox[0], bbox[3] - bbox[1]  # 计算文本的宽度和高度

也可以降低版本

相关推荐
向日的葵0065 天前
阿里云OSS从0到1实战:为宠物收养系统打造图片上传功能
python·阿里云·云计算·pillow·fastapi·宠物
Dxy123931021611 天前
Python Pillow库:`img.format`与`img.mode`的区别详解
开发语言·python·pillow
yuanpan12 天前
Python + Pillow 实战:开发一个图片批量格式转换工具
python·microsoft·pillow
万粉变现经纪人1 个月前
如何解决 import aiohttp ModuleNotFoundError: No module named ‘aiohttp’
python·scrapy·beautifulsoup·aigc·pillow·pip·httpx
智算菩萨1 个月前
【Python图像处理】5 Pillow图像处理与格式转换
图像处理·python·pillow
nFBD29OFC2 个月前
pillow - 图像处理的瑞士军刀
图像处理·人工智能·pillow
万粉变现经纪人2 个月前
如何解决 pip install pillow-simd 报错 需要 AVX2/特定编译器 支持 问题
python·scrapy·beautifulsoup·aigc·pandas·pillow·pip
MoRanzhi12032 个月前
Pillow 图像分割、切片与拼接处理
图像处理·人工智能·python·计算机视觉·pillow·图像拼接·网格分块
MoRanzhi12032 个月前
pillow 图像合成、透明叠加与蒙版处理
python·计算机视觉·pillow·图片处理·图像合成·透明叠加·多图层叠加
MoRanzhi12032 个月前
Pillow 图像算术运算与通道计算
图像处理·人工智能·python·计算机视觉·pillow·图像差异检测·图像算术运算