当前位置: 首页 > news >正文

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]  # 计算文本的宽度和高度

也可以降低版本

http://www.dtcms.com/a/166666.html

相关文章:

  • AI对IT行业的重塑:挑战与机遇并存的技术革命
  • GD32F407单片机开发入门(十九)DMA详解及ADC-DMA方式采集含源码
  • Android 动态权限申请
  • 毕业论文 | 传统特征点提取算法与匹配算法对比分析
  • 无忧AI综合插件,可实现图色识别、机器视觉、图像编辑等多种功能
  • Unity 粒子同步,FishNet
  • 【Linux安装图形化界面【欧拉】】
  • 2025年ASOC SCI2区TOP:思维创新策略TIS +一种设计和进化更新机制,深度解析+性能实测
  • 制造业行业ERP软件部署全流程指南:从选型到维护,怎么做?
  • 数据库系统综合应用与深度实践指南
  • 平衡截断(Balanced Truncation)—— MTALAB 和 Python 实现
  • 「Mac畅玩AIGC与多模态09」开发篇05 - 使用自定义天气查询插件开发智能体应用
  • 综合开发-手机APP远程控制PLC1500柱灯的亮灭
  • [Java入门]抽象类和接口
  • 低压电工理论备考精选练习题
  • ReSearch: Learning to Reason with Search for LLMs via Reinforcement Learning
  • 二叉树的路径总和问题(递归遍历,回溯算法)
  • 小米MiMo-7B大模型:解锁推理潜力的新传奇!
  • 安凯微以创新之芯,赋能万物智能互联新时代
  • 住宅代理与数据中心代理有什么区别
  • 正点原子STM32H743单片机实现ADC多通道检测
  • 0.安装两个版本的JDK8和JDK17并配置环境变量
  • StreamingLLM:让LLM拥有无限长生成能力
  • dubbo泛化调用时transient字段失效问题
  • Queue系列之SynchronousQueue源码分析:原理剖析与实战对比
  • 【默子速报】DeepSeek新模型 Prover-V2 报告解读
  • 从Oculus到Meta:Facebook实现元宇宙的硬件策略
  • 二、OrcaSlicer用户预设
  • 电容的作用
  • 对js的Date二次封装,继承了原Date的所有方法,增加了自己扩展的方法,可以实现任意时间往前往后推算多少小时、多少天、多少周、多少月;