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]  # 计算文本的宽度和高度

也可以降低版本

相关推荐
wei20234 天前
Windows安装OpenManus pillow版本错误
pillow
Cherry的跨界思维7 天前
5、Python长图拼接终极指南:Pillow/OpenCV/ImageMagick三方案
javascript·python·opencv·webpack·django·pillow·pygame
生而为虫16 天前
28.Python处理图像
人工智能·python·计算机视觉·pillow·pygame
AndrewHZ1 个月前
【图像处理基石】如何从动漫参考图中提取色彩风格?
图像处理·人工智能·opencv·pillow·聚类算法·色彩风格·色彩分布
小小测试开发1 个月前
Python数据科学与图像处理利器组合:Prophet、Arch、Scikit-image、Pillow-heif用法全解析
图像处理·python·pillow
萧鼎1 个月前
Python 图像处理利器:Pillow 深度详解与实战应用
图像处理·python·pillow
Kratzdisteln2 个月前
【Python】绘制椭圆眼睛跟随鼠标交互算法配图详解
python·数学·numpy·pillow·matplotlib·仿射变换
MoRanzhi12032 个月前
Pillow 基础图像操作与数据预处理
图像处理·python·深度学习·机器学习·numpy·pillow·数据预处理
Derrick__12 个月前
Python常用三方模块——Pillow
开发语言·python·pillow
eqwaak03 个月前
Pillow高级实战案例:图像处理的进阶应用
开发语言·python·科技·语言模型·pillow