python PIL crop image

for img in os.listdir(imgfolder):
		imgname, Suff = os.path.splitext(img)
		im = Image.open(imgfolder + img)
		im_size = im.size
		width, height = im_size[0], im_size[1]

		xnum = int(width/cropsize) + 1
		ynum = int(height/cropsize) + 1

		rowindex = 0
		for yindex in range(ynum):  #yindex: row
			rowindex += 1
			columnindex = 0
			for xindex in range(xnum):  #xindex: column
				columnindex += 1

				if xindex != 0:
					box = (xindex*cropsize - overlap, yindex*cropsize, (xindex+1)*cropsize - overlap,(yindex+1)*cropsize) #设定裁剪区域
				else:
					box = (xindex*cropsize,yindex*cropsize,(xindex+1)*cropsize,(yindex+1)*cropsize) #设定裁剪区域 

				#To compare the box edge with the width and height of image. 				
				if box[2] > width and box[3] < height:
					box = (width-1024, box[1], width, box[3])
				if box[3] > height and box[2] < width:
					box = (box[0], height-1024, box[2], height)
				if box[3] > height and box[2] > width:
					box = (width-1024, height-1024, width. height)

				# crop and save img
				region = im.crop(box)
				region.save(imgsavefolder + imgname + '-' + str(rowindex) + '-' + str(columnindex) + Suff)

overlap:设置重叠区域

cropsize:生成图片大小

猜你喜欢

转载自blog.csdn.net/summermaoz/article/details/101215009
今日推荐