Python实现九宫格式的朋友圈功能内附“马云”朋友圈


Posted in Python onMay 07, 2019

PIL(Python Imaging Library)是一个非常强大的Python库,但是它支持Python2.X, 在Python3中则使用的是Pillow库,它是从PIL中fork出来的一个分支。提供了非常强大的图片处理能力,包括存储、格式转换、图像处理等操作

 

有时候看到朋友圈的九宫格动态,是不是感觉非常有逼格呢? 今天就用Python来实现九宫格切图。

先来看几张效果图

Python实现九宫格式的朋友圈功能内附“马云”朋友圈

Python实现九宫格式的朋友圈功能内附“马云”朋友圈

大致思路分为以下几步

1.读取初始照片

2.比较照片的宽高,数值较大的作为边长生成一个新的空白图片

3.将初始图片粘贴至第二部创建的空白图片上

4.将图片进行切割

5.保存 

直接上代码

from PIL import Image

image = Image.open('图片路径.jpg')
width, height = image.size

# 高和宽进行比较,较大的为新图片的长度
new_length = height if height > width else width

# 创建一张正方形空图片,底色为白色,
new_image = Image.new(image.mode, (new_length, new_length), color='white')

# 将要处理的图片粘贴到新创建的图片上,居中
if height > width: # 如果高度大于宽,则填充图片的宽度
 new_image.paste(image, (int((new_length - width) / 2)), 0)
else:
 new_image.paste(image, (0, int((new_length - height) / 2)))

# 朋友圈一排三张图片因此宽度切割成3份
new_length = int(new_length / 3)
# 用来保存每一个切图
box_list = []
for i in range(0, 3):
 for j in range(0, 3):
  # 确定每个图片的位置
  box = (j * new_length, i * new_length, (j + 1) * new_length, (i + 1) * new_length) # (left, top, right, bottom)
  box_list.append(box)
# 通过crop函数对图片进行切割
image_list = [new_image.crop(box) for box in box_list]

for (index, image) in enumerate(image_list):
 image.save(str(index) + '.png', 'PNG')
print("九宫格图片生成完毕!")

为了方便使用,通过pyinstaller对脚本进行打包成exe文件。

pip3 install pyinstaller

执行

pyinstaller -F cut_picture.py

就会在当前目录生成一个dist文件夹,里面就有我们最终需要的exe文件。如何使用呢?只需要在将要切割的图片重命名为“a.jpg”,放入同级目录中,双击启动即可

效果图如下

Python实现九宫格式的朋友圈功能内附“马云”朋友圈

总结

以上所示是小编给大家介绍的Python实现九宫格式的朋友圈功能内附“马云”朋友圈,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
python获得图片base64编码示例
Jan 16 Python
在Python中调用ggplot的三种方法
Apr 08 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 Python
简单了解Python中的几种函数
Nov 03 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
Python字典遍历操作实例小结
Mar 05 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
pytorch索引查找 index_select的例子
Aug 18 Python
python实现三种随机请求头方式
Jan 05 Python
Python 全局空间和局部空间
Apr 06 Python
python验证身份证信息实例代码
May 06 #Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 #Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 #Python
Python两台电脑实现TCP通信的方法示例
May 06 #Python
python3利用Socket实现通信的方法示例
May 06 #Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 #Python
Python Flask 搭建微信小程序后台详解
May 06 #Python
You might like
一篇不错的PHP基础学习笔记
2007/03/18 PHP
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
小白谈谈对JS原型链的理解
2016/05/03 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
移动web开发之touch事件实例详解
2018/01/17 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
[01:13]这,就是刀塔
2014/07/16 DOTA
Python做文本按行去重的实现方法
2016/10/19 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
django创建css文件夹的具体方法
2020/07/31 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
JAVA代码查错题
2014/10/10 面试题
"引用"与多态的关系
2013/02/01 面试题
财务会计人员岗位职责
2013/11/30 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
收费员岗位职责
2015/02/14 职场文书
2015年电教工作总结
2015/05/26 职场文书
Go语言应该什么情况使用指针
2021/07/25 Golang
Python数据结构之队列详解
2022/03/21 Python
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python