这篇文字讲述如何使用Python把一张完整的大图切割成9份小图片,制作朋友圈九宫格图文分享。 原图如下:
Image
我们想要利用这张图制作高逼格的九宫格朋友圈分享。
达到类似于这样的效果:
实现原理非常简单,那就是利用PIL库对原图不断画小区域然后切下来存储成新的小图片。
假设每一个格子的宽和高分别是w、h,那么第row行(从0开始计数),第col列(从0开始计数)的格子左上角坐标和右下角坐标分别是(col * w, row * h),(col * w w, r * h h)
。
code snippet:
代码语言:javascript复制#! /usr/local/bin/python3
# -*- coding: utf-8 -*-
from PIL import Image
def cut_image(image):
width, height = image.size
item_width = width / 3.0
item_height = height / 3.0
box_list = []
for row in range(0,3):
for col in range(0,3):
box = (col * item_width, row * item_height,( col 1 ) * item_width,( row 1 ) * item_height)
box_list.append( box )
image_list = [image.crop(box) for box in box_list]
return image_list
def save_images(image_list):
dirName = 'output'
if False == os.path.exists( dirName ):
os.makedirs( dirName )
index = 1
for image in image_list:
image.save('./output/python' str(index) '.png', 'PNG')
index = 1
if __name__ == '__main__':
image = Image.open( "use.png" )
image_list = cut_image(image)
save_images(image_list)
为了能在朋友圈中预览时看到所有图片的完整样子,建议保证自己的原始图片是正方形的,然后再运行这个脚本,在output中得到九张图片。最后,嗯,就可以去秀了!
小编给大家推荐一个学习氛围超好的地方,鼠标放到头像上就能看到