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() 方法,導(dǎo)致你在代碼中使用 w, h = self.font.getsize(label) 時,會產(chǎn)生 AttributeError: 'FreeTypeFont' object has no attribute 'getsize' 這樣的錯誤。
原因
方法移除:ImageFont.getsize() 方法及相關(guān)功能在 Pillow 10.0.0 版本中被正式移除。這意味著任何依賴該功能的代碼,在使用 10.0.0 版本或以上版本運行時,都會因為方法不存在而報錯。
解決方案
使用 getbbox 方法:這是替代 getsize 的方法,能夠提供文本的邊界框信息。
你可以通過以下方式調(diào)整代碼:
# 舊代碼 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] # 計算文本的寬度和高度
也可以降低版本
到此這篇關(guān)于Pillow 移除或更改了 FreeTypeFont.getsize() 方法的文章就介紹到這了,更多相關(guān)Pillow FreeTypeFont.getsize() 方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Matlab實現(xiàn)時間序列預(yù)測分類實例代碼
時間序列是按時間順序排列的、隨時間變化且相互關(guān)聯(lián)的數(shù)據(jù)序列,這篇文章主要給大家介紹了關(guān)于Matlab實現(xiàn)時間序列預(yù)測分類的相關(guān)資料,需要的朋友可以參考下2021-07-07
Python編程tkinter庫Canvas實現(xiàn)涂鴉顏色表及圍棋盤示例
這篇文章主要為大家介紹了Python編程中如何使用tkinter庫Canvas來實現(xiàn)涂鴉,顏色表及圍棋盤的示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10

