将一张图片转换成N宫格
需要使用库
from PIL import Image
import matplotlib.pyplot as plt
使用的库函数
- 打开一张图片
img1 = Image.open(photo_path) - 截取一张图片的指定区域
img_cut = img1.crop((120,20,200,100)) - 创建一幅给定模式(mode)和尺寸(size)底色的图片。
result = Image.new(img1.mode, (width+103,height+103),“white”) - 为将一张图片覆盖到另一张图片的指定位置去
result.paste(img,box=(x1,y1,x2,y2))
代码展示
# -*- coding: utf-8 -*-
'''
@Time : 2023/1/12 15:37
@Author : fanlulin
@File : c.py
函数作用 : 将一张图片转换成N宫格
'''
from PIL import Image
import matplotlib.pyplot as plt
n = int(input('请输入n的值:'))
photo_path = "./img.jpg"
img1 = Image.open(photo_path)
width, height = img1.size
item_width = int(width/n)
item_height = int(height/n)
print(item_width,item_height)
result = Image.new(img1.mode, (width+10*3,height+10*3),"white")
for j in range(n):
for i in range(n):
img_cut = img1.crop((i*(item_width),j*(item_height),(i+1)*(item_width),(j+1)*(item_height)))
result.paste(img_cut,box=(i*(item_width+3),j*(item_height+3)))
result.save("./new_image.jpg")
plt.imshow(result)
plt.show()
效果对比:
处理之前
处理之后: