利用Python实现朋友圈中的九宫格图片效果


Posted in Python onSeptember 03, 2020

前言

大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可。

说到切图,Python 就可以实现,主要用到的 Python 库为 Pillow,安装使用 pip install pillow 即可,切图的主要步骤如下:

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

主要实现代码如下:

# 填充新的 image
def fill_image(image):
 width, height = image.size
 _length = width
 if height > width:
  _length = height
 new_image = Image.new(image.mode, (_length, _length), color='white')
 if width > height:
  new_image.paste(image, (0, int((_length - height) / 2)))
 else:
  new_image.paste(image, (int((_length - width) / 2), 0))
 return new_image

# 裁剪 image
def cut_image(image):
 width, height = image.size
 _width = int(width / 3)
 box_list = []
 for i in range(0, 3):
  for j in range(0, 3):
   box = (j * _width, i * _width, (j + 1) * _width, (i + 1) * _width)
   box_list.append(box)
   image_list = [image.crop(box) for box in box_list]
 return image_list

# 将 image 列表的里面的图片保存
def save_images(image_list, res_dir):
 index = 1
 if not os.path.exists(res_dir):
  os.mkdir(res_dir)
 for image in image_list:
  new_name = os.path.join(res_dir, str(index) + '.png')
  image.save(new_name, 'PNG')
  index += 1

原图:

利用Python实现朋友圈中的九宫格图片效果

效果图:

利用Python实现朋友圈中的九宫格图片效果

总结

到此这篇关于利用Python实现朋友圈中的九宫格图片效果的文章就介绍到这了,更多相关Python实现朋友圈九宫格图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现从一组颜色中找出与给定颜色最接近颜色的方法
Mar 19 Python
python修改操作系统时间的方法
May 18 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
浅析Python函数式编程
Oct 06 Python
python从子线程中获得返回值的方法
Jan 30 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
Jan 06 Python
Python爬虫程序架构和运行流程原理解析
Mar 09 Python
Python 实现自动完成A4标签排版打印功能
Apr 09 Python
利用python 读写csv文件
Sep 10 Python
Opencv+Python识别PCB板图片的步骤
Jan 07 Python
python中用ggplot绘制画图实例讲解
Jan 26 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 #Python
Django实现微信小程序支付的示例代码
Sep 03 #Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 #Python
一篇文章搞懂python的转义字符及用法
Sep 03 #Python
容易被忽略的Python内置类型
Sep 03 #Python
python类共享变量操作
Sep 03 #Python
Python pip install之SSL异常处理操作
Sep 03 #Python
You might like
PHP微信分享开发详解
2017/01/14 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
js表格分页实现代码
2009/09/18 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
python中类的一些方法分析
2014/09/25 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
python装饰器初探(推荐)
2016/07/21 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
如何理解python中数字列表
2020/05/29 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
空指针到底是什么
2012/08/07 面试题
光电信息专业应届生求职信
2013/10/07 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
老乡聚会通知
2015/04/23 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
变长双向rnn的正确使用姿势教学
2021/05/31 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL