实现九宫格图片
PIL:Python Imaging Library
已经是Python平台事实上的图像处理标准库了。
PIL功能非常强大,但API却非常简单易用。由于PIL仅支持到Python 2.7,一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。
官网地址:https://pillow.readthedocs.io/en/stable/
安装方式: pip3 install pillow
#!/usr/bin/env python
# encoding: utf-8
from PIL import Image
img_path = r'C:\\001.jpg'
#img_path = r'C:\\002.jpg'
#把图片变成正方形图片
image = Image.open(img_path)
width,height = image.size
print(width,height)
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:
# (x,y)二元组表示粘贴上图相对下图的起始位置
new_image.paste(image, (0, int((new_image_length - height) / 2)))
else:
# 如果原图宽小于高(竖图),则填充图片的水平纬度
new_image.paste(image, (int((new_image_length - width) / 2), 0))
new_image.save(r"D:\0011.jpg")
#将图片裁剪为9张大小相同的图片
width,height = new_image.size
new_width = int(width/3)
print(new_width)
box_list = []
#坐标 左 上 右 底
for i in range(0,3):
for j in range(0,3):
box = (i*new_width,j*new_width,(i+1)*new_width,(j+1)*new_width)
print(box)
box_list.append(box)
#根据坐标裁剪图片
index = 1
for box in box_list:
new_image.crop(box).save(r"D:\001-"+str(index)+".jpg")
index = index + 1