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 with statement 进行文件操作指南
Aug 22 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
Python2和Python3的共存和切换使用
Apr 12 Python
python微信撤回监测代码
Apr 29 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
详解使用Python下载文件的几种方法
Oct 13 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
pytorch数据预处理错误的解决
Feb 20 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
python实现批处理文件
Jul 28 Python
利用python绘制正态分布曲线
Jan 04 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之Smarty入门
2007/01/04 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
AngularJS基础知识
2014/12/21 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
js实现select下拉框选择
2020/01/11 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
python统计中文字符数量的两种方法
2019/01/31 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
Python 线程池用法简单示例
2019/10/02 Python
Python2与Python3的区别详解
2020/02/09 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
行政部经理助理岗位职责
2014/06/15 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
创业计划书之书店
2019/09/10 职场文书