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解析xml文件实例分享
Dec 04 Python
Python random模块(获取随机数)常用方法和使用例子
May 13 Python
在Python中处理字符串之ljust()方法的使用简介
May 19 Python
Python中常用操作字符串的函数与方法总结
Feb 04 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
Python2.X/Python3.X中urllib库区别讲解
Dec 19 Python
Django中反向生成models.py的实例讲解
May 30 Python
基于python生成器封装的协程类
Mar 20 Python
python之mock模块基本使用方法详解
Jun 27 Python
关于PyTorch 自动求导机制详解
Aug 18 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
python 实现图像快速替换某种颜色
Jun 04 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/11/23 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
四个PHP非常实用的功能
2015/09/29 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
关于赌博的检讨书
2014/01/24 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
自主招生专家推荐信
2015/03/26 职场文书
人事任命通知书
2015/04/21 职场文书
发票退票证明
2015/06/24 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
SQL基础的查询语句
2021/11/11 MySQL