本篇内容介绍了“ImageDraw.textsize()和ImageDraw.text()怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
ImageDraw.textsize()函数使用说明:
返回用指定字体对象显示给定字符串所需要的图像尺寸.
ImageDraw.text()函数使用说明:
使用指定的字体对象来在图像中显示文字, 可以指定文字显示的位置以及显示的颜色.
代码实验举例:
from PIL import Image,ImageFont, ImageDrawimport numpy as npimport colorsys image = Image.open("bryant.jpg")class_names = \["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]hsv_tuples = [(x / len(class_names), 1., 1.)for x in range(len(class_names))] # 获得hsv格式的不同色度colors = list(map(lambda x: colorsys.hsv_to_rgb(*x), hsv_tuples)) # 获得rgb格式的不同颜色colors = list(map(lambda x: (int(x[0] * 255), int(x[1] * 255), int(x[2] * 255)),colors)) # 通过hsv格式来调整不同类别对应边框的色度font = ImageFont.truetype(font='simhei.ttf',size=np.floor(3e-2 * 1000 + 0.5).astype('int32')) # 获得字体label = '{} {:.2f}'.format('林麻子林祖泉', 0.982)draw = ImageDraw.Draw(image) label_size = draw.textsize(label, font)print('label_size:',label_size) # label_size: (255, 30)label = label.encode('utf-8')draw.rectangle([200, 50, 200 + label_size[0] , 50 + label_size[1]],outline=colors[class_names.index('motorbike')],width=1,fill=colors[class_names.index('diningtable')] # 用于填充)draw.text([200, 50], label.decode(), fill=(255, 0, 0), font=font)image.show()
控制台输出结果展示:
Windows PowerShell 版权所有 (C) Microsoft Corporation。保留所有权利。 尝试新的跨平台 PowerShell https://aka.ms/pscore6 加载个人及系统配置文件用了 1006 毫秒。 (base) PS C:\Users\chenxuqi\Desktop\News4cxq\test4cxq> & 'D:\Anaconda3\envs\pytorch_1.7.1_cu102\python.exe' 'c:\Users\chenxuqi\.vscode\extensions\ms-python.python-2020.12.424452561\pythonFiles\lib\python\debugpy\launcher' '54048' '--' 'c:\Users\chenxuqi\Desktop\News4cxq\test4cxq\test15.py' label_size: (255, 30) (base) PS C:\Users\chenxuqi\Desktop\News4cxq\test4cxq> conda activate pytorch_1.7.1_cu102 (pytorch_1.7.1_cu102) PS C:\Users\chenxuqi\Desktop\News4cxq\test4cxq>
运行结果截图:
“ImageDraw.textsize()和ImageDraw.text()怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。