文章目录
目录
- 原因
- 解决方案
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 的方法,能够提供文本的边界框信息。
你可以通过以下方式调整代码:
# 旧代码 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] # 计算文本的宽度和高度
也可以降低版本
到此这篇关于Pillow 移除或更改了 FreeTypeFont.getsize() 方法的文章就介绍到这了,更多相关Pillow FreeTypeFont.getsize() 方法内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- 详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
- Python图像处理Pillow库的安装使用
- Python详细讲解图像处理的而两种库OpenCV和Pillow
- python安装pillow的三种方法
- 详解Python图像处理库Pillow常用使用方法
- python pillow模块使用方法详解