教你怎么用Python生成九宫格照片


Posted in Python onMay 20, 2021

一、朋友圈九宫格效果图

教你怎么用Python生成九宫格照片

二、图片基本操作

  • 打开要处理的图片
  • 判断打开的图片是否为正方形
  • 如果是正方形,就进行九等分,如果不是正方形,先用白色填充为正方形,再进行九等分
  • 保存处理完的图片

第一步,先我安装一下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参数,表示要截取的区域。图片中的坐标系是以左上角为原点的,如图:

教你怎么用Python生成九宫格照片

我们来看看具体的代码:

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')

三、生成九宫格图片

如图:

教你怎么用Python生成九宫格照片

知道了上面的操作,下面的操作无非就是截取图片的九个区域,然后保存即可。具体代码如下:

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

到此这篇关于教你怎么用Python做九宫格照片的文章就介绍到这了,更多相关Python做九宫格照片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现查询IP地址所在地
Mar 29 Python
《Python学习手册》学习总结
Jan 17 Python
django 发送邮件和缓存的实现代码
Jul 18 Python
Python wxpython模块响应鼠标拖动事件操作示例
Aug 23 Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
pandas数据拼接的实现示例
Apr 16 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
Python join()函数原理及使用方法
Nov 14 Python
python3 os进行嵌套操作的实例讲解
Nov 19 Python
用 Python 元类的特性实现 ORM 框架
May 19 #Python
浅谈Python 中的复数问题
May 19 #Python
Python机器学习之基础概述
Python机器学习之PCA降维算法详解
Python 批量下载阴阳师网站壁纸
May 19 #Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 #Python
python使用pywinauto驱动微信客户端实现公众号爬虫
You might like
jQuery 使用手册(四)
2009/09/23 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
Javascript事件实例详解
2013/11/06 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
Python类及获取对象属性方法解析
2020/06/15 Python
python从PDF中提取数据的示例
2020/10/30 Python
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
纪念建党演讲稿范文
2014/01/13 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
教师学期末个人总结
2015/02/13 职场文书
教学督导岗位职责
2015/04/10 职场文书
硕士论文致谢范文
2015/05/14 职场文书
母亲去世追悼词
2015/06/23 职场文书
工作报告范文
2019/06/20 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
分享几个简单MySQL优化小妙招
2022/03/31 MySQL