当前位置: 首页 > 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]  # 计算文本的宽度和高度

也可以降低版本

相关文章:

  • 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大模型:解锁推理潜力的新传奇!
  • 安凯微以创新之芯,赋能万物智能互联新时代
  • 住宅代理与数据中心代理有什么区别
  • 美国季度GDP时隔三年再现负增长,特朗普政府关税政策对美国经济负面影响或将持续
  • 海警巡航时海豚围舰艇嬉戏,专家:证明海域生态环境持续向好
  • 遍体鳞伤就是击不倒,这是国米老男孩最后的倔强
  • 拍摄《我们这一代》的肖全开展“江浙沪叙事”
  • 强制性国家标准《危险化学品企业安全生产标准化通用规范》发布
  • 聚焦各领域顶尖工匠,《上海工匠》第十季于五一播出