教你怎么用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结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
使用python和Django完成博客数据库的迁移方法
Jan 05 Python
python+opencv实现动态物体追踪
Jan 09 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
Python正则表达式实现简易计算器功能示例
May 07 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
Aug 06 Python
Python使用uuid库生成唯一标识ID
Feb 12 Python
python新式类和经典类的区别实例分析
Mar 23 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 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
php通过session防url攻击方法
2014/12/10 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
Prototype Template对象 学习
2009/07/19 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python基于DES算法加密解密实例
2015/06/03 Python
itchat接口使用示例
2017/10/23 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
python去除文件中重复的行实例
2018/06/29 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
生产厂厂长岗位职责
2013/12/25 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
Python循环之while无限迭代
2022/04/30 Python