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 ip正则式
May 07 Python
python中使用pyhook实现键盘监控的例子
Jul 18 Python
Python使用SocketServer模块编写基本服务器程序的教程
Jul 12 Python
Python 加密的实例详解
Oct 09 Python
python数据抓取分析的示例代码(python + mongodb)
Dec 25 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
python实现微信自动回复功能
Apr 11 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
对Xpath 获取子标签下所有文本的方法详解
Jan 02 Python
利用Python实现微信找房机器人实例教程
Mar 10 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
通过代码实例了解Python3编程技巧
Oct 13 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学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
详解.vue文件解析的实现
2018/06/11 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
对python中的高效迭代器函数详解
2018/10/18 Python
Keras实现DenseNet结构操作
2020/07/06 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
高中化学教学反思
2014/01/13 职场文书
生日邀请函范文
2014/01/13 职场文书
重阳节登山活动方案
2014/02/03 职场文书
教师个人剖析材料
2014/02/05 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
元宵晚会主持词
2014/03/25 职场文书
中学生励志演讲稿
2014/04/26 职场文书
规范化管理年活动总结
2014/08/29 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
小学生家长意见
2015/06/03 职场文书
孙振耀退休感言
2015/08/01 职场文书
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技