Python使用PIL裁剪贴图代码,pythonpil贴图代码,Python使用PIL裁
Python使用PIL裁剪贴图代码,pythonpil贴图代码,Python使用PIL裁
Python使用PIL裁剪贴图代码,还依赖了numpy包。
[Python]代码
import osimport numpyimport Imageimport statimport argparse # 处理参数使用import sysdef encodeChinese(msg): type=sys.getfilesystemencoding() return msg.decode('UTF-8').encode(type)image_path='需要裁剪文件路径'log_path='处理后文件保存路径'help_image_path=encodeChinese(image_path)help_log_path=encodeChinese(log_path)help_path=encodeChinese('自动处理裁减贴图的工具')parser = argparse.ArgumentParser(description=encodeChinese('自动处理裁减贴图的工具'))parser.add_argument('--dir', action='store', dest='image_dir', help=help_image_path) #common.encodeChinese(help_log_path))parser.add_argument('--log', action='store', dest='log_filename', help=help_log_path) #common.encodeChinese(help_log_path))parser.add_argument('--version', action='version', version='%(prog)s 1.0')args = parser.parse_args()err_image_dir=encodeChinese('没有输入需要裁剪文件路径')err_log_dir=encodeChinese('没有输入处理后文件保存路径')if args.image_dir is None : print err_image_dir sys.exit()if args.log_filename is None : print err_log_dir sys.exit()rootdir=args.image_dirtargetDir=args.log_filenamefor parent,dirnames,filenames in os.walk(rootdir): for filename in filenames: filename1,filename2 = os.path.split(filename) filename = rootdir+os.sep+filename fName,fPath = os.path.splitext(filename) value_r = 0 value_g = 0 value_b = 0 count = 0 if(fPath =='.png'): #os.chmod(filename,stat.S_IWRITE) img = Image.open(filename) if img.mode == 'RGBA': rgba = encodeChinese('这张是RGBA图片') print rgba img.load() data = img.getdata() data_a = list() for item in data: if item[3] < 128: data_a.append((item[0],item[1],item[2],0)) else: data_a.append((item[0],item[1],item[2],255)) for item in data: if item[3] == 255: count += 1 value_r += item[0] value_g += item[1] value_b += item[2] value_r = value_r / count value_g = value_g / count value_b = value_b / count print value_r print value_g print value_b print count newdata = list() for item in data_a: if item[3] == 0: newdata.append((value_r,value_g,value_b,item[3])) elif item[3] == 255: newdata.append((item[0],item[1],item[2],item[3])) print len(newdata) img.putdata(newdata) img.save(targetDir + os.sep+filename2); print str(filename2) + ' save' #如果它没有alpha通道 elif img.mode == 'RGB': print 'RGB' img.load() #转换出一个alpha通道 img = img.convert('RGBA') datas = img.getdata() mydata = list() newdata = list() for item in data: if item[0] == 0 and item[1] == 0 and item[2] == 0: mydata.append((item[0],item[1],item[2],0)) else: mydata.append((item[0],item[1],item[2],255)) for item in data: if item[3] == 255: count += 1 value_r += item[0] value_g += item[1] value_b += item[2] value_r = value_r / count value_g = value_g / count value_b = value_b / count for item in mydata: newdata.append((value_r,value_g,value_b,item[3])) img.putdata(newdata) img.save(targetDir + os.sep + filename2) #如果它不是png格式 else: try: img = Image.open(filename) print 'JPG' img.load() #转换出一个alpha通道 img = img.convert('RGBA') print 'convert' datas = img.getdata() print 'getdata()' mydata = list() newdata = list() for item in datas: if item[0] == 0 and item[1] == 0 and item[2] == 0: mydata.append((item[0],item[1],item[2],0)) else: mydata.append((item[0],item[1],item[2],255)) print 'loop data' for item in datas: if item[3] == 255: count += 1 value_r += item[0] value_g += item[1] value_b += item[2] print 'value_r: ' + str(value_r) print 'value+g: ' + str(value_g) print 'value+b: ' + str(value_b) value_r = value_r / count value_g = value_g / count value_b = value_b / count print 'value_r / count : ' + str(value_r) print 'value_g / count : ' + str(value_g) print 'value_b / count " ' + str(value_b) for item in mydata: newdata.append((value_r,value_g,value_b,item[3])) img.putdata(newdata) print 'putdata(newdata)' img.save(targetDir + os.sep + filename2) print img.mode print str(filename2)+' save over' except: not_png = encodeChinese('这张贴图既不是png也不是jpg,这张贴图的名字是: ') print not_png + filename2
相关内容
- python通过HTMLParser抓取网页上的全部链接,pythonhtmlpars
- python压缩和读取.tar.bz2格式的压缩包,python.tar.bz2,#压缩
- webpy输出json例子代码,webpy输出json,webpy中可以方便的输
- python的反射:动态获得模块,类,python模块,python的反射
- python使用urllib2抓取网页时的错误处理,pythonurllib2,try
- python计算代码执行时间,python计算代码,import times
- python使用xmlproc验证xml格式是否符合DTD定义,xmlprocdtd,
- python线程池实现,python线程池,python原生包中没有
- python的SIGIO handler,sigiohandler,On Linux, us
- python写的一个骰子程序,python写骰子程序,import rando
评论关闭