项目需要裁剪图片用做大图拼接,写个处理脚本,做个记录。
#!/usr/bin/python
#pic
import os,os.path
import sys,getopt
import shutil
import Image
cur_dir=os.path.dirname(os.path.realpath(__file__))
opts,args=getopt.getopt(sys.argv[1:],"p:s:")
file_path=""
for op,value in opts:
if op == "-p":
file_path=value
filename=os.path.splitext(os.path.basename(file_path))
goal_dir=cur_dir+'\\'+filename[0]
if os.path.exists(goal_dir):
shutil.rmtree(goal_dir)
if not os.path.exists(goal_dir):
os.mkdir(goal_dir)
img = Image.open(file_path)
x_gap=512
y_gap=512
width=img.size[0]
height=img.size[1]
num_x=width/x_gap
num_y=height/y_gap
if num_x*x_gap<width:
num_x+=1
if num_y*y_gap<height:
num_y+=1
for y in xrange(0,num_y):
for x in xrange(0,num_x):
img = Image.open(file_path)
goal_x=x*x_gap+x_gap
goal_y=y*y_gap+y_gap
if goal_x>width:
goal_x=width
if goal_y>height:
goal_y=height
region = (x*x_gap,y*y_gap,goal_x,goal_y)
print(str(x*x_gap)+'--'+str(y*y_gap)+'--'+str(x*x_gap+x_gap)+'--'+str(y*y_gap+y_gap))
cropImg = img.crop(region)
goal_file=goal_dir+"\\"+filename[0]+'-'+str(y*num_x+x)+".jpg"
cropImg.save(goal_file)