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遍历类中所有成员的方法
Mar 18 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
解读python如何实现决策树算法
Oct 11 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
Python编程中flask的简介与简单使用
Dec 28 Python
Django实现学员管理系统
Feb 26 Python
python字典的setdefault的巧妙用法
Aug 07 Python
python实现的多任务版udp聊天器功能案例
Nov 13 Python
python 变量初始化空列表的例子
Nov 28 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
Python实现基于权重的随机数2种方法
2015/04/28 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
python 反向输出字符串的方法
2018/07/16 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
详解Python基础random模块随机数的生成
2019/03/23 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
8种常用的Python工具
2020/08/05 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
Django数据统计功能count()的使用
2020/11/30 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
配件采购员岗位职责
2013/12/03 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
市场营销战略计划书
2014/05/06 职场文书
社区健康教育工作方案
2014/06/03 职场文书
自我工作评价范文
2015/03/06 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
女儿满月酒致辞
2015/07/29 职场文书
企业文化学习心得体会
2016/01/21 职场文书
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers