python在图像处理方面基于PIL库具有非常强大的功能
不幸的是没有支持python3的PIL版本 幸运的是我们可以通过pillow实现图像处理
安装过程不多赘述:可以参考 Win7 64位下Python安装PIL图像处理库
上图一张用于切割:炮姐赛高!
废话不多说,切割炮姐(图片),上代码
"""
将一张图片均匀向下移动,向右移动,每移动一次,切割出一个固定面积的图片
算法思想:我们知道图片实际上是有一个二维数组组成的,所以先控制横坐标不变,纵坐标截取,一直到纵坐标的边界,然后向右移动横坐标,重复上一步操作
在这里我设置了三个不同的截取大小。读者可以运用选择结构以求实现程序更好的表现效果
"""
#python实现图片切割技术
from PIL import Image
#id标识图片 vx,vy为切成的图片大小
def cut(id,vx,vy):
name1="D:/img/"+str(id)+'.jpg'
print(name1)
name2="D:/img/"+str(id)+"_block_"
im=Image.open(name1)
#偏移量
dx=40
dy=40
n=1 #切割图片的片数
x1=0
y1=0
x2=vx
y2=vy
print(im.size) #输出图片的大小
w=im.size[0] #将原图的宽赋值给w
h=im.size[1] #将原图的高赋值给h
while x2<=w:
#先纵向切割
while y2<=h:
name3=name2+str(n)+".jpg"
#crop() : 从图像中提取出某个矩形大小的图像。它接收一个四元素的元组作为参数,各元素为(left, upper, right, lower),坐标系统的原点(0, 0)是左上角。
im2=im.crop((x1,y1,x2,y2))
im2.save(name3)
y1=y1+dy
y2=y1+vy
n=n+1 #更新n的值
x1=x1+dx
x2=x1+vx
y1=0
y2=vy
print("图片切割成功,切割得到的子图片数为:")
return n-1
if __name__=="__main__":
id="pao" #图片存储绝对路径为D:\img\pao.jpg
#切割成图片的参数 长vx,宽vy
#设置三种不同的切割大小 1.大
res=cut(id,160,120)
#2.中
#res=cut(id,120,80)
#3.小
#res=cut(id,80,40)
print(res)
运行该python程序:
可以看到程序运行成功,切割完成,我们打开存储切割图片的文件夹看一下效果
是不是很神奇~~~
------我愿对世界温柔以待,望世界对我也温柔以待