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 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 Python
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
用Python抢过年的火车票附源码
Dec 07 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
使用python实现链表操作
Jan 26 Python
Python 将pdf转成图片的方法
Apr 23 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
python中pygame安装过程(超级详细)
Aug 04 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
pytorch的batch normalize使用详解
Jan 15 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 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 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
PHP错误机制知识汇总
2016/03/24 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
nginx 设置多个站跨域
2021/03/09 Servers
javascript读取xml
2006/11/04 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
python33 urllib2使用方法细节讲解
2013/12/03 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
EJB timer的种类
2014/10/28 面试题
博士研究生自我鉴定范文
2013/12/04 职场文书
高中体育教学反思
2014/01/24 职场文书
酒店端午节促销方案
2014/02/18 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis