今天这几张照片在我的朋友圈里炸锅啦!背后的真相令人...

简介: 今天这几张照片在我的朋友圈里炸锅啦!背后的真相令人...

今天我的朋友圈炸锅了

原因竟是因为我发的几张九宫格图片:

朋友纷纷问我原因。我说都是pythonPIL库(Python Image Library)帮我搞定的。

 

首先我们来做一个简单的了解:

Python图像库PIL(Python Image Library)是python的第三方图像处理库。由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了。


PIL历史悠久,原来是只支持python2.x的版本的,后来出现了移植到python3的库pillow,pillow号称是friendly fork for PIL,其功能和PIL差不多,但是支持python3。

那么它可以用来帮助我们做些什么?

 

图像归档

PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等。

图像展示


PIL较新的版本支持包括Tk PhotoImage,BitmapImage还有Windows DIB等接口。PIL支持众多的GUI框架接口,可以用于图像展示。


图像处理


PIL包括了基础的图像处理函数,包括对点的处理,使用众多的卷积核(convolution kernels)做过滤(filter),还有颜色空间的转换。PIL库同样支持图像的大小转换,图像旋转,以及任意的仿射变换。


PIL还有一些直方图的方法,允许你展示图像的一些统计特性。这个可以用来实现图像的自动对比度增强,还有全局的统计分析等。


今天我们用一个实际的例子,看我是如何利用这个python库成功的在朋友圈装13的。


整体思路如下:

接下来咱们来分步操作:

1.因为我的PC目前使用的是python3.8.所以需要先安装pillow这个库。

pip install pillow -i https://pypi.douban.com/simple


和Image这个库。

pip install Image -i https://pypi.douban.com/simple

2.然后定义我们需要切割的照片。

3.编码。

3.1首先我们导入刚才安装好的库。

from PIL import Image

3.2.之后通过我们写的read_image获取图片信息。

width, height = image.size
#选取长和宽中较大值作为新图片的·
new_image_length = width if width > height else height
#生成新图片[白底]
new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')
 

3.3.然后利用我们写的方法将主图切割成9张白底照片。利用双重for循环获取到九张照片。

def cut_image(image):
    width, height = image.size
    item_width = int(width / 3)
    box_list = []
    # (left, upper, right, lower)
    for i in range(0,3):#两重循环,生成9张图片基于原图的位置
        for j in range(0,3):
            box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)
            box_list.append(box) 

3.4.最后一步保存到我们指定的路径即可。

def save_images(image_list):
    index = 1
    for image in image_list:
        image.save('./beautiful/girls'+str(index) + '.jpg', 'PNG')

最后一起来看一下我们执行的结果。

这种图片放哪里它不香呢?

源码已经准备好,接下来你想切割那张照片只需换照片即可!如果有需要,私我!

相关文章
|
4月前
|
存储 前端开发
【实战案例】火语言 RPA 采集小说站已完结书名(自动翻页判断),保存到Excel 全流程(附完整脚本)
自动采集起点中文网完本小说书名,支持翻页检测与数据存储。脚本逐页抓取小说名并保存至Excel,最多采集50页,智能判断翻页逻辑,确保数据完整,适用于批量获取完结书籍信息。
296 5
|
4月前
|
数据采集 存储 监控
构建定时监控系统,轻松爬取番茄小说最新章节
构建定时监控系统,轻松爬取番茄小说最新章节
|
12月前
|
人工智能 自然语言处理 搜索推荐
PhotoDoodle:设计师必备!AI一键生成装饰元素,30+样本复刻风格+无缝融合的开源艺术编辑框架
PhotoDoodle 是由字节跳动、新加坡国立大学等联合推出的艺术化图像编辑框架,能够通过少量样本学习艺术家的独特风格,实现照片涂鸦和装饰性元素生成。
505 1
PhotoDoodle:设计师必备!AI一键生成装饰元素,30+样本复刻风格+无缝融合的开源艺术编辑框架
|
11月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
467 4
|
12月前
“可以成为我的恋人吗”HTML源码
“可以成为我的恋人吗”HTML源码,双击html文件可以本地运行,打开HTML页面,上面显示可以或者不要,越是拒绝,可以的按钮就会越来越大,直到点击可以为止
1170 0
“可以成为我的恋人吗”HTML源码
|
安全 Java 测试技术
🌟 Java 零基础 | 详解 instanceof 运算符
【10月更文挑战第1天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
454 1
|
存储 JSON 自然语言处理
豆瓣超高评分《你好,火焰蓝》热评生成精美词云!!!
豆瓣超高评分《你好,火焰蓝》热评生成精美词云!!!
255 1
|
调度 C语言 芯片
RT-Thread记录(二、RT-Thread内核启动流程 — 启动文件和源码分析)
今天就在前面我们RT-Thread Studio工程基础之上讲一讲RT-Thread内核启动流程
932 0
RT-Thread记录(二、RT-Thread内核启动流程 — 启动文件和源码分析)
|
前端开发 JavaScript 开发者
react18【系列实用教程】组件 (2024最新版 | 含父子组件传值、兄弟组件传值、越层组件传值、“插槽“)
react18【系列实用教程】组件 (2024最新版 | 含父子组件传值、兄弟组件传值、越层组件传值、“插槽“)
323 2
|
数据安全/隐私保护
[SWPUCTF 2021 新生赛]原来你也玩原神
[SWPUCTF 2021 新生赛]原来你也玩原神
771 0

热门文章

最新文章