教你怎么用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中的推导式使用详解
Jun 03 Python
Python 文件处理注意事项总结
Apr 10 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
python 数字类型和字符串类型的相互转换实例
Jul 17 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
Python 实现使用空值进行赋值 None
Mar 12 Python
django自带的权限管理Permission用法说明
May 13 Python
python map比for循环快在哪
Sep 21 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 Python
pandas map(),apply(),applymap()区别解析
Feb 24 Python
 分享一个Python 遇到数据库超好用的模块
Apr 06 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投票程序源码
2007/03/11 PHP
php统计数组元素个数的方法
2015/07/02 PHP
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
微信小程序实现换肤功能
2018/03/14 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
Python字典遍历操作实例小结
2019/03/05 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
在python3中实现更新界面
2020/02/21 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
现金会计岗位职责
2013/12/05 职场文书
应届生如何写自荐信
2014/01/05 职场文书
财务出纳岗位职责
2014/02/03 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
护校行动方案
2014/05/31 职场文书
全国文明单位申报材料
2014/05/31 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
五四青年节活动总结
2015/02/10 职场文书
回门宴新娘答谢词
2015/09/29 职场文书