利用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 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 Python
Python入门篇之字符串
Oct 17 Python
在Python中调用ggplot的三种方法
Apr 08 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
Python fileinput模块使用实例
Jun 03 Python
Python设计模式之门面模式简单示例
Jan 09 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 Python
python实现自动发送报警监控邮件
Jun 21 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
基于python实现把图片转换成素描
Nov 13 Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 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
新闻分类录入、显示系统
2006/10/09 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
JavaScript事件列表解说
2006/12/22 Javascript
use jscript Create a SQL Server database
2007/06/16 Javascript
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
低版本中Python除法运算小技巧
2015/04/05 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
SQL Server面试题
2013/04/04 面试题
Java基础面试题
2014/07/19 面试题
环境科学毕业生自荐信
2013/11/21 职场文书
安全生产先进个人总结
2015/02/15 职场文书
海上钢琴师观后感
2015/06/03 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
编写python程序的90条建议
2021/04/14 Python