PIL(pillow)简单使用:新建画布、添加文字、画矩形、裁剪、粘贴

简介: PIL(pillow)简单使用:新建画布、添加文字、画矩形、裁剪、粘贴

安装依赖

pip install pillow

1、新建一张300*300的白色画布

# -*- coding: utf-8 -*-
from PIL import Image
# 参数:模式、大小、颜色
image = Image.new(mode="RGB", size=(300, 300), color="white")
image.save("1.png")

图片:

11.1.png


2、画布上加一些文字

# -*- coding: utf-8 -*-
from PIL import Image, ImageDraw, ImageFont
# 参数:模式、大小、颜色
image = Image.new(mode="RGB", size=(300, 300), color="white")
# 添加文字
draw = ImageDraw.Draw(image)
font = ImageFont.truetype(font='PingFang.ttc', size=40)
# 参数:位置、文本、填充、字体
draw.text(xy=(100, 100), text='demo', fill=(255, 0, 0), font=font)
image.save("1.png")

11.2.png


3、裁剪上面的图片,把文字部分裁出来

# 裁剪 左上角和右下角坐标 (left, upper, right, lower)
sub_image = image.crop(box=(90, 100, 210, 160))


11.3.png


4、为了好看,我在文字边上画个框,将裁剪下来的文字张贴到图片另外的位置

# -*- coding: utf-8 -*-
from PIL import Image, ImageDraw, ImageFont
# 参数:模式、大小、颜色
image = Image.new(mode="RGB", size=(300, 300), color="white")
# 添加文字
draw = ImageDraw.Draw(image)
font = ImageFont.truetype(font='PingFang.ttc', size=40)
# 参数:位置、文本、填充、字体
draw.text(xy=(100, 100), text='demo', fill=(255, 0, 0), font=font)
# 画个边框为1的红色矩形框
draw.rectangle(xy=(90, 100, 210, 160), fill=None, outline="red", width=1)
# 裁剪 左上角和右下角坐标 (left, upper, right, lower)
sub_image = image.crop(box=(90, 100, 220, 170))
# 裁剪下来的子图粘贴到原图上
image.paste(im=sub_image, box=(90, 200))
image.save("1.png")

11.4.png


参考

  1. 如何使用python的Pillow模块新建图像
  2. 如何使用python的Pillow模块复制粘贴图像
  3. python如何使用pil画一个矩形
相关文章
|
Ubuntu
Ubuntu系统镜像下载,国内镜像站大全(山大/清华/阿里/浙大/中科大...)
装Ubuntu,是很多理工科同学入门的第一个挑战,首先我们就需要找到一个能用的iso镜像,根据你的网络环境的不同,不同的站点下载速度会不一样,下面列举一下几个比较好用的,都是来自Ubuntu官方推荐镜像站链接导航国内分区
11149 1
|
存储 JSON Kubernetes
查看k8s的etcd数据
查看k8s的etcd数据
2123 0
查看k8s的etcd数据
|
传感器 数据可视化 安全
【虚拟现实】二、主要的AR/VR硬件设备
【虚拟现实】二、主要的AR/VR硬件设备
629 3
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
1707 1
|
SQL 存储 数据挖掘
使用Python和PDFPlumber进行简历筛选:以SQL技能为例
本文介绍了一种使用Python和`pdfplumber`库自动筛选简历的方法,特别是针对包含“SQL”技能的简历。通过环境准备、代码解析等步骤,实现从指定文件夹中筛选出含有“SQL”关键词的简历,并将其移动到新的文件夹中,提高招聘效率。
312 8
使用Python和PDFPlumber进行简历筛选:以SQL技能为例
|
缓存 监控 网络协议
Linux操作系统的内核优化与实践####
本文旨在探讨Linux操作系统内核的优化策略与实际应用案例,深入分析内核参数调优、编译选项配置及实时性能监控的方法。通过具体实例讲解如何根据不同应用场景调整内核设置,以提升系统性能和稳定性,为系统管理员和技术爱好者提供实用的优化指南。 ####
|
并行计算 API C++
Nvidia TensorRT系列01-TensorRT的功能1
NVIDIA TensorRT是一个高性能深度学习推理优化器和运行时,支持C++和Python API。其编程模型分为构建阶段和运行时阶段,前者优化模型,后者执行推理。TensorRT支持多种数据类型和精度,包括FP32、FP16、INT8等,并提供插件机制以扩展支持的操作。
444 0
|
数据库 开发者
|
开发工具
Vim教程:深入了解如何删除换行符
【4月更文挑战第3天】
924 1
Vim教程:深入了解如何删除换行符