将一张图片转换成N宫格

将一张图片转换成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()

效果对比:
处理之前
在这里插入图片描述
处理之后:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值