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地址在整型和字符串之间轻松转换
Mar 22 Python
Python高斯消除矩阵
Jan 02 Python
对IPython交互模式下的退出方法详解
Feb 16 Python
python实现微信自动回复机器人功能
Jul 11 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
详解Python实现进度条的4种方式
Jan 15 Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 Python
python反扒机制的5种解决方法
Feb 06 Python
python数据处理之Pandas类型转换
Apr 28 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 define()函数及defined()函数使用详解
2013/06/09 PHP
php实现的RSS生成类实例
2015/04/23 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
document.write的几点使用心得
2014/05/14 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
python自带的http模块详解
2016/11/06 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
详解Python学习之安装pandas
2019/04/16 Python
Python netmiko模块的使用
2020/02/14 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
python实现简单的tcp 文件下载
2020/09/16 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
应届毕业生求职信
2013/11/30 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
失职检讨书大全
2015/01/26 职场文书
centos7安装mysql5.7经验记录
2022/05/02 Servers