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

也可以降低版本

相关推荐
代码小书生11 天前
pillow,一个实用的 Python 库!
开发语言·python·pillow
开源技术1 个月前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
Dfreedom.1 个月前
详解四大格式(PIL/OpenCV/NumPy/PyTorch)的转换原理与场景选择
图像处理·人工智能·pytorch·opencv·numpy·pillow
MoRanzhi12031 个月前
Pillow 图像几何变换与仿射操作
python·pillow·几何学·图片处理·几何变换·仿射操作·图像裁剪
one day3211 个月前
从numpy-pillow-opencv的基础学习
opencv·numpy·pillow
wei20233 个月前
Windows安装OpenManus pillow版本错误
pillow
Cherry的跨界思维3 个月前
5、Python长图拼接终极指南:Pillow/OpenCV/ImageMagick三方案
javascript·python·opencv·webpack·django·pillow·pygame
生而为虫3 个月前
28.Python处理图像
人工智能·python·计算机视觉·pillow·pygame
AndrewHZ3 个月前
【图像处理基石】如何从动漫参考图中提取色彩风格?
图像处理·人工智能·opencv·pillow·聚类算法·色彩风格·色彩分布
小小测试开发3 个月前
Python数据科学与图像处理利器组合:Prophet、Arch、Scikit-image、Pillow-heif用法全解析
图像处理·python·pillow