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:生成圖片大小

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章