教你怎么用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字符串替换的2种方法
Nov 30 Python
Python实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
Python本地与全局命名空间用法实例
Jun 16 Python
Python实现简单的代理服务器
Jul 25 Python
详解Python中的Descriptor描述符类
Jun 14 Python
python中子类调用父类函数的方法示例
Aug 18 Python
在Python web中实现验证码图片代码分享
Nov 09 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
Django框架验证码用法实例分析
May 10 Python
python中的数组赋值与拷贝的区别详解
Nov 26 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
基于Python实现的购物商城管理系统
Apr 27 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来自动调用不同服务器上的flash
2006/10/09 PHP
php实现图片添加水印功能
2014/02/13 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
JS 遮照层实现代码
2010/03/31 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
如何在Node和浏览器控制台中打印彩色文字
2020/01/09 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
Python的time模块中的常用方法整理
2015/06/18 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
python通过百度地图API获取某地址的经纬度详解
2018/01/28 Python
python实现彩色图转换成灰度图
2019/01/15 Python
详解Python3 基本数据类型
2019/04/19 Python
django框架模板语言使用方法详解
2019/07/18 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
如何完美的建立一个python项目
2020/10/09 Python
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
毕业生自荐书
2014/02/02 职场文书
家电业务员岗位职责
2014/03/10 职场文书
党员承诺书内容
2014/03/26 职场文书
就业意向书范文
2014/04/01 职场文书
软环境建设心得体会
2014/09/09 职场文书