当前位置: 代码网 > it编程>前端脚本>Python > Pillow 移除或更改了 FreeTypeFont.getsize() 方法及问题解决方案

Pillow 移除或更改了 FreeTypeFont.getsize() 方法及问题解决方案

2025年05月09日 Python 我要评论
w, h = self.font.getsize(label) # text width, heightattributeerror: 'freetypefont' object ha

 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() 方法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com