首页 > 其他分享 >AttributeError: ‘ImageDraw‘ object has no attribute ‘textsize‘

AttributeError: ‘ImageDraw‘ object has no attribute ‘textsize‘

时间:2024-09-26 19:55:13浏览次数:10  
标签:textsize no attribute top draw height width font Hello

在进行画框的时候发现代码报错了,查询原因后发现我的pillow版本删除了该方法
有两种处理办法:1、就是降低版本 2、就是根据新版本修改代码,我这里主要来介绍一下新版本如何修改代码,把textsize改为textbbox

首先先了解一下原先这个textsize方法的作用查看官方文档给的示例
 

from PIL import Image, ImageDraw, ImageFont

font = ImageFont.truetype("Tests/fonts/FreeMono.ttf")
width, height = font.getsize("Hello world")
left, top = font.getoffset("Hello world")

im = Image.new("RGB", (100, 100))
draw = ImageDraw.Draw(im)
width, height = draw.textsize("Hello world", font)

width, height = font.getsize_multiline("Hello\nworld")
width, height = draw.multiline_textsize("Hello\nworld", font)

很明显这个draw.textsize返回的就是宽高。

然后再看修改后的代码示例

from PIL import Image, ImageDraw, ImageFont

font = ImageFont.truetype("Tests/fonts/FreeMono.ttf")
left, top, right, bottom = font.getbbox("Hello world")
width, height = right - left, bottom - top

im = Image.new("RGB", (100, 100))
draw = ImageDraw.Draw(im)
width = draw.textlength("Hello world", font)

left, top, right, bottom = draw.multiline_textbbox((0, 0), "Hello\nworld", font)
width, height = right - left, bottom - top

修改后的代码draw.textbbox返回了,left、top、right、bottom,我们需要再做一次计算才能得到width和height  ,至于传入的参数xy就传入(0,0),然后就是字符,字体

width, height = right - left, bottom - top

标签:textsize,no,attribute,top,draw,height,width,font,Hello
From: https://blog.csdn.net/z17338523033/article/details/142568652

相关文章

  • 基于nodejs+vue校园新闻网站[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,互联网已成为人们获取信息、交流思想的重要平台。在高校环境中,信息的及时传播与共享对于促进学术交流、增强校园文化氛围、提升学生......
  • 基于nodejs+vue校园新闻网站[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网的普及,校园信息化建设已成为提升教育质量、促进校园文化交流的重要途径。在当前数字化时代背景下,校园新闻作为连接师生、传......
  • 基于nodejs+vue校园学生会管理系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在当今数字化、信息化高速发展的时代,校园管理正逐步向智能化、高效化转型。学生会作为连接学校与学生之间的重要桥梁,其管理效率与服务质量直接影响到学生活......
  • Linux云计算 |【第四阶段】NOSQL-DAY2
    主要内容:Redis集群概述、部署Redis集群(配置manage管理集群主机、创建集群、访问集群、添加节点、移除节点)一、Redis集群概述1、集群概述所谓集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态;而单个Redis服务运行存在不稳定性,当Redis服务......
  • notebook使用技巧
    1.快捷键按ESC键可以进入命令模式,在命令模式下,Jupyter提供了许多快捷键来提高工作效率。A:在当前单元格上方插入新单元格B:在当前单元格下方插入新单元格DD:删除当前单元格M:将单元格转换为Markdown格式Y:将单元格转换为代码格式Shift+Enter:运行当前单元格并移动到下一个......
  • [2027届]NOIP2024模拟赛#6
    全真模拟赛。1:30开考。看了T1,发现\(O(m\logn)\)的暴力很好写,直接50pts到手。然后发现每次不用一个一个改,而且改完以后可以直接区间改,但是一直没有找到合适的东西维护复杂度。往下翻了翻数据发现\(2\)的整次幂这个性质很好写,但是写挂了。此时时间已经过去了1.5h,于是......
  • 《圣剑传说Visions of Mana》游戏启动时闪退弹窗“找不到node.dll”该怎么修复?圣剑传
    启动《圣剑传说VisionsofMana》游戏时,竟出现闪退并弹窗“找不到node.dll”,这真让人手足无措。别担忧,此种状况往往是相关文件缺失造成。接下来为您详细阐述修复这一问题的可行办法,助您顺利开启游戏。本篇将为大家带来《圣剑传说VisionsofMana》游戏启动时闪退弹窗“找不到no......
  • Record of ABC Notation Used in Obsidian
    Whentypingcodesnippet %%linebreak<none> X:1 K:Ctreble %Cmajor,fouroctaves: C,D,E,F,G,A,B,C|CDEFGABc| cdefgabc'|c'e'g'c''|inMakingMusicwithAbc2-ApracticalguidetotheA......
  • NOIP2024集训Day39 DP
    NOIP2024集训Day39DPA.[AGC002F]LeftmostBall反向考虑,从最终状态,倒退它能指向多少种初始状态。dp策略:从左往右放,每次对最左边的一个空位,要么放一个白球,要么放一个有颜色的球,同时把该种颜色剩下的球都放到后面的位置去。具体的:定义\(f_{i,j}\)表示当前有\(i\)个白球......
  • 【VUE】[Violation] Added non-passive event listener to a scroll-blocking...
    1.问题[Violation]Addednon-passiveeventlistenertoascroll-blocking<某些>事件.Considermarkingeventhandleras'passive'tomakethepagemoreresponsive.See<URL>译:[违规]向滚动阻止添加了非被动事件侦听器<某些>事件.请考虑将事件处理程序标记为“被......