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

也可以降低版本

相关推荐
是乐谷5 天前
Python图片转WebP常用库推荐:Pillow、Wand、cv2
大数据·运维·开发语言·人工智能·python·开源·pillow
WSSWWWSSW7 天前
Python Imaging Library (PIL) 全面指南:PIL高级图像处理-分割与颜色空间转换
图像处理·python·计算机视觉·pillow
WSSWWWSSW1 个月前
Jupyter Notebook 中高效处理和实时展示来自 OpenCV 和 Pillow 的图像数据探究
opencv·jupyter·pillow
万粉变现经纪人2 个月前
如何解决pip安装报错ModuleNotFoundError: No module named ‘pillow’问题
python·pycharm·beautifulsoup·pandas·pillow·pip·策略模式
旷世奇才李先生2 个月前
Pillow 安装使用教程
深度学习·microsoft·pillow
微信公众号:AI创造财富2 个月前
构建 docket uable to prepar context: path “.“ not found
python·plotly·flask·pillow·ipython·tornado
Code_流苏3 个月前
Python趣学篇:交互式词云生成器(jieba + Tkinter + WordCloud等)
python·pillow·matplotlib·tkinter·wordcloud·jieba分词·词云生成器
胡耀超4 个月前
图像颜色理论与数据挖掘应用的全景解析
人工智能·python·opencv·计算机视觉·数据挖掘·视觉检测·pillow
guest_8814 个月前
用 Python 打造打篮球字符动画!控制台彩色炫酷输出,抖音搞怪视频灵感还原
开发语言·python·numpy·pillow