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() 方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python利用redis-py實現哈希數據類型的常用指令操作
這篇文章我們繼續(xù)學習 “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