nnnnon 发表于 2013-1-15 02:13:36

mac下图片批量处理

转自
https://github.com/zhasm/scripts/raw/master/resize.py


#!/usr/bin/python# -*- coding: utf-8 -*-##author:         rex#blog:         http://iregex.org#filename      resize.py#created:      2011-01-05 21:35import refrom sys import exitfrom optparse import OptionParserfrom os.path import abspathfrom os.path import dirname as dirnamefrom os.path import join as pathjointry:    import Imageexcept:    print "Please install PIL module for python before using this script"    exit(1)def getPath(sufix=""):    '''get absolute path of the current dir'''    path = dirname(__file__)    try:      index=path.index("..")      if index!=-1:            path=path[:index]    except:      pass    return pathjoin(abspath(path), sufix).replace('\\','/')def getOptions():    '''get and parse options '''    usage = "usage: %prog FILE1 [ FILE2 ...]"    parser=OptionParser(usage=usage)    parser.add_option("-r", "--resolution", dest="resolution", help="the destination resolution in 1024x768 format. You may use Non-digital chars to separate width and height, but do not use space as delimiter")    parser.add_option("-p", "--percent", dest="percent", help="the destination resolution in 90 format, where 90 stands for 90% percent. Please do not add the '%' sign.")    parser.add_option("-d", "--destination", dest="destination", help="the path to save the result. if omitted, the current folder will be used.")    (options, args) = parser.parse_args()    if not ( options.resolution or options.percent):      print parser.parse_args( [ '--help' ] )      exit(1)    if not args:      print "Please Specify Picture files to resize!"      print parser.parse_args( [ '--help' ] )      exit(1)    if not (options.destination):      options.destination=getPath()    return{      'files': args,      'option': options,    }def resize(files, resolutionString="", percent=None, output="./"):    '''resize all files with given opts'''    size=[]    if resolutionString:      size=re.findall(r"\d+", resolutionString)      size=      if not size:            print "Seems the resolution argument is not correct."            exit(1)    elif percent:      percent=int(percent)      if not percent:            print "Seems the percent argument is not correct."            exit(1)    all=len(files)    index=0    for file in files:      try:            im=Image.open(file)            try:                filename=re.findall(r"[^/]+$", file)            except:                print 'Error occured when try to get the real filename'                continue            outputfilename=pathjoin(abspath(output), "r_"+filename).replace('\\','/')            if percent and not size:                size=            result=im.resize(size, Image.ANTIALIAS)            result.save(outputfilename)            index+=1            print "[%d of %d] %s has been resized." % (index, all, file)      except:            print "Error occured when resizing %s" % fileif __name__=="__main__":    args=getOptions()    files=args['files']    option=args['option']    resize(files, resolutionString=option.resolution,            percent=option.percent,            output=option.destination)
页: [1]
查看完整版本: mac下图片批量处理