
01 前言
在日常的生活中,大家偶尔会看到朋友圈发的照片由一张被切成九张的效果,有时由一张照片被切成九张照片所带来的视觉盛宴是不一样的!
现在许多 P 图工具里面自带了这种功能,而微信小程序里也有专门可以切图的工具。为了熟练巩固的练习调库操作,今天就来带大家看看,如何用 Python 实现这个小功能。
02 成果展示
先来看看成果,原图为文章开始的图片,一图切九图朋友圈:
九张图发朋友圈的时候,还有个比较有意思的事,上传时是乱序的,还需要你自己像玩拼图一样自己摆位置。
03 思路讲解
这个小功能的实现利用了 Python 中的一个图形处理库,Pillow。
Pillow是由从著名的Python图像处理库PIL发展出来的一个分支,通过Pillow可以实现图像压缩和图像处理等各种操作。
1pip install pillow # 安装 pillow 库
大体实现思路以下几步:
04 代码讲解
按照上面的思路,写出代码:
1. 填充原图形的背景,生成大正方形图
1def fill_images(image):
2 """ 填充正方形白色背景图片 """
3 width, height = image.size # 获取图片的宽高
4 side = max(width, height) # 对比宽和高哪个大
6 # 新生成的图片是正方形的,边长取大的,背景设置白色
7 new_image = Image.new(image.mode, (side, side), color='white')
9 # 根据尺寸不同,将原图片放入新建的空白图片中部
10 if width > height:
11 new_image.paste(image, (0, int((side - height) / 2)))
12 else:
13 new_image.paste(image, (int((side - width) / 2), 0))
14 return new_image
代码中的顺序,可以理解为下面几个图形,首先在原有的照片基础上覆盖上白色背景:
其次,比较宽和高的生成规则是下面两个图,我们可以将背景调成黑色,便于观察,当宽大于高的像素时,你的照片就是横着铺满正方形的,而背景图填充上下,黑色背景是不是有股电影大片的气息:
当高大于宽的像素时,你的照片就是竖着铺满正方形的,而背景图填充左右:
第一步到这里就完成了,你得到的就是一张被背景颜色填满的正方形。
2. 对大正方形进行切割
1def cut_images(image):
2 """ 切割大正方形图 """
3 width, height = image.size
4 one_third_width = int(width / 3) # 三分之一正方形线像素
6 # 保存每一个小切图的区域
7 box_list =
9 """
10 切图区域是矩形,位置由对角线的两个点(左上,右下)确定,
11 而 crop 实际要传入四个参数(left, upper, right, lower)
12 """
13 for x in range(3):
14 for y in range(3):
15 left = x * one_third_width # 左像素
16 upper = y * one_third_width # 上像素
17 right = (x + 1) * one_third_width # 右像素
18 lower = (y + 1# 下像素
19 box = (left, upper, right, lower)
20 box_list.append(box)
21 image_list = [image.crop(box) for box in box_list]
22 return image_list
首先定位三分线:
根据左上,右下两个像素点的位置,确定新的图形:
最后将每个小正方形的左上和右下像素点进行存储,以元组的形式写到list中,在调用 crop 函数进行图像复制。关于 crop 函数,官方文档:
3. 存储切割后的9张图片(不放代码了,比较简单)
05 总结
Pillow 库对图像处理操作支持非常友好,而本次的小工具核心就在于如果进行对原有图片进行切割。内嵌两次循环来逐行遍历,双重遍历的思想会经常用到,这块可以注意下。
当然如果要是嫌源代码运行麻烦,可以打成 exe 文件来使用哟。这下又可以在朋友圈秀操作了!(比如改改背景呀,黑色背景什么的。)
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
K-S 曲线、回归与分类:数据分析中的重要工具 在数据分析与机器学习领域,K-S 曲线、回归和分类是三个核心概念与工具,它们各 ...
2025-07-31大数据时代对定性分析的影响 在大数据时代,海量、多样、高速且低价值密度的数据充斥着我们的生活与工作。而定性分析作为一 ...
2025-07-31CDA含金量分析 在数字经济与人工智能深度融合的时代,数据驱动决策已成为企业核心竞争力的关键要素。CDA(Certified Data Analys ...
2025-07-31SASEM 决策树:理论与实践应用 在复杂的决策场景中,如何从海量数据中提取有效信息并制定科学决策,是各界关注的焦点。SASEM 决 ...
2025-07-30SPSS 语法使用详解 在当今数据驱动的时代,SPSS( Statistical Package for the Social Sciences)作为一款功能强大的统计分析软 ...
2025-07-30人工智能对CDA数据分析领域的影响 人工智能对 CDA(Certified Data Analyst,注册数据分析师)数据分析领域的影响是全方位、多层 ...
2025-07-30MySQL执行计划中rows的计算逻辑:从原理到实践 MySQL 执行计划中 rows 的计算逻辑:从原理到实践 在 MySQL 数据库的查询优化中 ...
2025-07-29左偏态分布转正态分布:方法、原理与实践 左偏态分布转正态分布:方法、原理与实践 在统计分析、数据建模和科学研究中,正态分 ...
2025-07-29CDA 数据分析师的职业生涯规划:从入门到卓越的成长之路 在数字经济蓬勃发展的当下,数据已成为企业核心竞争力的重要来源,而 CD ...
2025-07-29CDA数据分析师证书考取全攻略 一、了解 CDA 数据分析师认证 CDA 数据分析师认证是一套科学化、专业化、国际化的人才考核标准, ...
2025-07-29解析神经网络中 Softmax 函数的核心作用 在神经网络的发展历程中,激活函数扮演着至关重要的角色,它们为网络赋予了非线性能力, ...
2025-07-29解析 response.text 与 response.content 的核心区别 在网络数据请求与处理的场景中,开发者经常需要从服务器返回的响应中提取数 ...
2025-07-29鸢尾花判别分析:机器学习中的经典实践案例 在机器学习的世界里,有一个经典的数据集如同引路明灯,为无数初学者打开了模式识别 ...
2025-07-29用 Python 开启数据分析之旅:从基础到实践的完整指南 在数据驱动决策的时代,数据分析已成为各行业不可或缺的核心能力。而 Pyt ...
2025-07-29从 CDA LEVEL II 考试题型看 Python 数据分析要点 在数据科学领域蓬勃发展的当下,CDA(Certified Data Analyst)认证成为众多从 ...
2025-07-29CDA 数据分析师的工作范围解析 在数字化时代的浪潮下,数据已成为企业发展的核心资产之一。CDA(Certified Data Analyst)数据分 ...
2025-07-29解析 insert into select 是否会锁表:原理、场景与应对策略 在数据库操作中,insert into select 是一种常用的批量数据插入语句 ...
2025-07-29用 Power BI 制作地图热力图:基于经纬度数据的实践指南 在数据可视化领域,地图热力图凭借直观呈现地理数据分布密度的优势,成 ...
2025-07-29从数据到决策:CDA 数据分析师如何重塑职场竞争力与行业价值 在数字经济席卷全球的今天,数据已从 “辅助工具” 升级为 “核心资 ...
2025-07-292025 年 CDA 数据分析师考纲焕新,引领行业人才新标准 在数字化浪潮奔涌向前的当下,数据已成为驱动各行业发展的核心要素。作为 ...
2025-07-29