利用Python Pillow库生成九宫格图片
相信很多人看到过九宫格图片,一张完备的大图被分割成九张小图,在朋友圈和微博里一度成为流行。https://img-blog.csdnimg.cn/img_convert/a136268ba6943030ce52b79ec4ac32eb.webp?x-oss-process=image/format,png
相比完备的大图,九宫格图文增添了一丝趣味和精致,也显得更有创意。
制作九宫格图片的工具有很多,下文用Python的PIL库来实现图片的九宫格切分。
切分有以下要求:
1、不管原图尺寸如何,切出来的九张图拼在一起后,需是一张正方形大图
2、尽可能不改变原图的清楚度
3、对切分后的九张图用数字序号命名,方便朋友圈或微博上传
说明下,这个小脚本实用性见仁见智,重要是方便初学者练习语法并建立爱好。
如果你有批量处理图片的需求,那么这个脚本或许对你有很大资助。
'''
朋友圈九宫格图片制作
工具库:Pillow
'''
# encoding=utf-8
from PIL import Image
import sys
# 第一步:先将原图填充为正方形
def fill_image(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')
# 将原图粘贴在新图上,位置为居中
if width > height:
new_image.paste(image, (0, int((new_image_length - height) / 2)))
else:
new_image.paste(image, (int((new_image_length - width) / 2), 0))
return new_image
# 第二步:将图片切割成九宫格
def cut_image(image):
width, height = image.size
# 一行放3张图
item_width = int(width / 3)
box_list = []
for i in range(0, 3):
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)
image_list =
return image_list
# 第三步:保存图片
def save_images(image_list,save_path):
index = 1
for image in image_list:
image.save(save_path +str(index) + '.png', 'PNG')
index += 1
if __name__ == '__main__':
file_path = "e:\\图片\\新垣结衣.jpg"
save_path = "e:\\图片\\九宫格\\"
image = Image.open(file_path)
image = fill_image(image)
image_list = cut_image(image)
save_images(image_list)
print("{}张图片全部生成".format(len(image_list)))
上面不到50行代码,便实现了对图片的九宫格切分。你可以复制代码到本地,只需添加原图和生成图的路径,就能执行代码并得到结果。
我们看下生成好的九张图:
https://img-blog.csdnimg.cn/img_convert/2e38b59416347d9e0f0277aa49427ebb.webp?x-oss-process=image/format,png
再保存得手机里,发朋友圈时,依次按1~9顺序上传图片即可。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]