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
的方法,能够提供文本的边界框信息。
你可以通过以下方式调整代码:
# 旧代码 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() 方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python利用redis-py实现哈希数据类型的常用指令操作
这篇文章我们继续学习 “redis-py” 模块的一些关于 “哈希数据类型” 的相关指令用方法,比如利用 pyton 实现操作 “哈希表” 的数据、操作 “redis” 的事务等等2022-09-09Pytorch实现List Tensor转Tensor,reshape拼接等操作
这篇文章主要介绍了Pytorch实现List Tensor转Tensor,reshape拼接等操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-11-11Python使用everything库构建文件搜索和管理工具
在这篇博客中,我将分享如何使用 Python 的 everytools库构建一个简单的文件搜索和管理工具,这个工具允许用户搜索文件、查看文件路径、导出文件信息到 Excel,以及生成配置文件,文中有相关的代码示例供大家参考,需要的朋友可以参考下2024-08-08
最新评论