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 实现文件的递归拷贝实现代码
Aug 02 Python
Django中ORM表的创建和增删改查方法示例
Nov 15 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
解决Python运行文件出现out of memory框的问题
Dec 03 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 Python
如何验证python安装成功
Jul 06 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
Python 中的单分派泛函数你真的了解吗
Jun 22 Python
opencv用VS2013调试时用Image Watch插件查看图片
Jul 26 Python
Python可变与不可变数据和深拷贝与浅拷贝
Apr 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 防止单引号,双引号在接受页面转义
2008/07/10 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
php实例化一个类的具体方法
2019/09/19 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
JS前端笔试题分析
2016/12/19 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
简介Django框架中可使用的各类缓存
2015/07/23 Python
Python多进程原理与用法分析
2018/08/21 Python
python实现画出e指数函数的图像
2019/11/21 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
开放系统互连参考模型
2016/06/29 面试题
网站美工岗位职责
2014/04/02 职场文书
项目负责人任命书
2014/06/04 职场文书
公司员工安全协议书
2014/11/21 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
学校运动会通讯稿
2015/07/18 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
新学期开学寄语2016
2015/12/04 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书