Python PIL库

利用PIL.ImageDrw在图片上绘制文本

导入依赖库

from PIL import Image, ImageDraw, ImageFont
import cv2 as cv
import numpy as np

创建一张图片并在图片上绘制文本

# 采用Image函数创建一张大小为200×200,颜色为绿色的RGB图像
image = Image.new("RGB", (200, 200), (0, 255, 0))
# 在原始图像的基础上创建一个ImageDraw.Draw()实例
draw = ImageDraw.Draw(image)
# 创建需要绘制的文本
text = 'Hello World'
# 设置绘图参数
# 文本左上角坐标:(10, 10);text: 创建的文本内容;fill:文本的颜色
draw.text((10, 10), text, fill=(255, 255, 255))
# 显示绘制好的图片
image.show()
# 保存绘制好的图片
image.save('Hello-World.png')

在图片上绘制文本并设置字体
设置字体大小必须采用自定义字体,默认字体无法改变字体大小,Pillow 支持加载 TrueType 和 OpenType 字体,下载TrueType字体地址:

# 选择图片
img = './dog_cat.jpg'
# 读取图片
image = Image.open(img)
# 创建ImageDraw.Draw()实例
draw = ImageDraw.Draw(image)
# 开始在同一张图片上绘制不同字体大小的文本
y = 10  # 设置文本初始纵坐标
text = 'dog ang cat'
for font_size in range(10, 40, 10):  # 设置不同的字体大小
    # ImageFont.truetype()通过size关键字参数设置字体大小
    font = ImageFont.truetype("./Gidole-Regular.ttf", size=font_size)
    draw.text((10, y), '{}: font_size={}'.format(text, font_size), font=font) 
    y += 30
image.save('./set_fontsize.png')

在图片上绘制文本并设置颜色

image = Image.open(img)
draw = ImageDraw.Draw(image)
# 创建颜色列表
colors = ["green", "blue", "red", "yellow", "purple"]
font = ImageFont.truetype("./Gidole-Regular.ttf", size=20)
text = 'dog and cat'
y = 10
for color in colors:
    # 通过关键字参数fill设置字体颜色
    draw.text((10, y), text , font=font, fill=color)
    y += 35
image.save('set_color.png')

在图片上绘制多行文本

image = Image.open(img)
draw = ImageDraw.Draw(image)  # 创建ImageDraw.Draw()对象
texts = ['Dog', 'Cat', 'Dog and Cat']  # 创建需要绘制的文本
font = ImageFont.truetype('./Gidole-Regular.ttf', size=20)
coord = 10
for text in texts:  # 多行绘制文本
    draw.text((10, coord), text, fill=(255, 0, 0), font=font)  # 绘制第一个文本,文本左上角坐标为(10, 10)
    coord += 20  # 进行多行绘制,y方向间隔20个像素
image.save('self_mutilline1.png')

 

文章链接: https://www.mfisp.com/22308.html

文章标题:Python PIL库

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
建站教程

Netbox安装

2023-7-21 13:45:33

建站教程

换位c++数组

2023-7-25 13:10:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠