Python实现九宫格朋友圈切图工具及打包教程

半杯拿铁
半杯拿铁
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍如何使用Python的Pillow库实现朋友圈九宫格图片切割功能。通过比较原图宽高生成正方形底图,居中粘贴后按3x3网格裁剪并保存。此外,文章提供了使用PyInstaller将脚本打包为独立exe文件的完整步骤,方便非编程用户直接运行。

Python九宫格切图原理与实现

PIL(Python Imaging Library)曾是Python中处理图像的强力库,主要支持Python 2.X版本。在Python 3环境中,推荐使用其分支Pillow库,该库继承了PIL的功能并进行了优化,提供了包括图像存储、格式转换及各类图像处理在内的强大功能。

 

朋友圈中常见的九宫格动态往往视觉效果出众,显得颇具格调。本文将演示如何利用Python代码实现这种九宫格图片的自动切割效果。

首先展示几组通过该方法生成的效果图,直观呈现切割后的视觉结果。

实现九宫格切图的核心逻辑主要包含以下几个步骤:

第一步是读取用户提供的原始照片文件。

第二步分析照片的宽度与高度,选取其中较大的数值作为新图片的边长,并基于此边长创建一张正方形的空白图片。

第三步是将读取的原始图片粘贴到上一步创建的空白图片中,确保原图在正方形画布上居中显示。

第四步是对合成后的正方形图片进行网格切割处理。

第五步是将切割好的各部分图片分别保存为独立文件。

核心代码解析

接下来展示具体的Python实现代码。


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("九宫格图片生成完毕!")

打包为exe可执行文件

为了提升使用的便捷性,可以通过pyinstaller工具将Python脚本打包成可执行的exe文件。

pip3 install pyinstaller

执行打包命令后,

pyinstaller -F cut_picture.py

当前目录下会生成一个名为dist的文件夹,其中包含最终所需的exe可执行文件。使用方法十分简单:只需将待切割的图片重命名为“a.jpg”,并将其放入与exe文件相同的目录中,双击运行该exe文件即可完成操作。

以下是使用上述方法生成的最终效果图示例。

综上所述,本文介绍了利用Python进行图片九宫格切割的技术方案。

以上内容为Python实现九宫格式朋友圈功能及“马云”朋友圈示例的详细介绍,希望能对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表