教你怎么用Python生成九宫格照片
作者:yunyun云芸 时间:2023-12-02 17:20:51
一、朋友圈九宫格效果图
二、图片基本操作
打开要处理的图片
判断打开的图片是否为正方形
如果是正方形,就进行九等分,如果不是正方形,先用白色填充为正方形,再进行九等分
保存处理完的图片
第一步,先我安装一下Pillow模块
pip install pillow
1 、处理图片
在Pillow中,用Image子模块。Image.open函数会返回一个图片对象,代码如下:
from PIL import Image
# 读取图片
img = Image.open('lbxx.jpg')
Pillow模块是PIL模块的python3版本,因此我们导入模块时是使用下面语句:
from PIL import Image
2、 截取图片
在Image对象中,有一个crop方法,用于剪切图片。它接收一个box参数,表示要截取的区域。图片中的坐标系是以左上角为原点的,如图:
我们来看看具体的代码:
from PIL import Image
# 读取图片
img = Image.open('lbxx.jpg')
# 截取图片的(0, 0, 300, 300)区域
box = img.crop((0, 0, 300, 300))
# 显示截取的区域
box.show()
3 、保存处理完的图片
保存图片的操作非常简单,我们只需要调用img的save方法即可,代码如下:
from PIL import Image
img = Image.open('lbxx.jpg')
box = img.crop((0, 0, 300, 300))
# 保存图片
box.save('1.jpg')
三、生成九宫格图片
如图:
知道了上面的操作,下面的操作无非就是截取图片的九个区域,然后保存即可。具体代码如下:
import os
from PIL import Image
# 读取图片
im = Image.open('1kkx.jpg')
# 宽高各除 3,获取裁剪后的单张图片大小
width = im.size[0]//3
height = im.size[1]//3
# 裁剪图片的左上角坐标
start_x = 0
start_y = 0
# 用于给图片命名
im_name = 1
# 循环裁剪图片
for i in range(3):
for j in range(3):
# 裁剪图片并保存
crop = im.crop((start_x, start_y, start_x+width, start_y+height))
# 判断文件夹是否存在
if not os.path.exists('imgs'):
os.mkdir('imgs')
crop.save('imgs/' + str(im_name) + '.jpg')
# 将左上角坐标的 x 轴向右移动
start_x += width
im_name += 1
# 当第一行裁剪完后 x 继续从 0 开始裁剪
start_x = 0
# 裁剪第二行
start_y += height
来源:https://blog.csdn.net/yunyun889901/article/details/116934635
标签:Python,九宫格,照片
0
投稿
猜你喜欢
Python实现Matplotlib,Seaborn动态数据图的示例代码
2023-02-03 23:47:22
Python进阶篇之字典操作总结
2021-08-02 20:34:44
华为2019校招笔试题之处理字符串(python版)
2023-09-29 19:42:04
简单谈谈Python流程控制语句
2023-03-12 12:34:25
详解python实现线程安全的单例模式
2021-05-02 08:57:02
鼠标驱动图片变化
2009-07-26 10:03:00
javascript demo 基本技巧
2024-04-29 13:24:45
python 获取毫秒级时间问题的解决
2022-01-06 15:27:30
Python实现的径向基(RBF)神经网络示例
2022-03-06 23:44:35
Node.js中创建和管理外部进程详解
2024-05-02 17:36:03
python Pandas之DataFrame索引及选取数据
2023-01-01 02:27:10
Python测试Kafka集群(pykafka)实例
2023-05-05 20:57:56
浅谈django的render函数的参数问题
2022-07-10 18:39:20
python opencv 画外接矩形框的完整代码
2023-02-25 05:00:46
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2024-04-27 15:17:55
php bootstrap实现简单登录
2024-04-10 10:42:07
Python输出汉字字库及将文字转换为图片的方法
2023-01-13 07:06:39
部署ASP.NET Core程序到Linux系统
2024-05-02 17:19:54
略谈美国雅虎首页改版
2009-07-26 18:34:00
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2024-01-21 22:23:32