Python jpg图片裁剪处理源码,,这个Python jpg


这个Python jpg图片裁剪处理源码是一个非正式的代码。其它它只是份雏形代码,还有很多地方需要时间来完善。刚学习python时间不久,能力有限,有些不能解决的地方,还希望有人能帮我指点一下。

我预想的代码功能是:将他做成类似于吸管一样的工具,可以吸取一个颜色范围后,完成裁剪工作。
现在的问是:目前的这个程序只能接受一个RGB值裁剪,并将jpg图片保存成为png图片。我在保存成为png图片的时候的处理方法不是很好,应该有更好的方法希望能有python图片处理方面的高手给指点下,谢谢!

# -*- coding: utf-8 -*-import numpyimport Imageimport osimport sysdef encodeChinese(msg):type = sys.getfilesystemencoding()return msg.decode('UTF-8').encode(type)rootdir = r'c:\users\mingl_wang\desktop\test2'targetdir = r'c:\users\mingl_wang\desktop\test3'#www.iplaypy.comfor parent,dirnames,filenames in os.walk(rootdir):for filename in filenames:fName = filename;print fNamefilename = rootdir + os.sep + filenamefn,fPostfix = os.path.splitext(filename)if(fPostfix == '.jpg'):print fName + encodeChinese('  请按照红绿蓝顺序依次输入背景色参数,\我们将按照您输入的数值进行裁剪:') + '\n'try:print encodeChinese('红色的参数(0~255): ')red = int(raw_input())except:print encodeChinese('您输入的不是数字,请重新输入红色参数(0~255): ')red = int(raw_input())try:print encodeChinese('绿色的参数(0~255): ')green = int(raw_input())except:print encodeChinese('您输入的不是数字,请重新输入绿色参数(0~255): ')green = int(raw_input())try:print encodeChinese('蓝色的参数(0~255): ')bule = int(raw_input())except:print encodeChinese('您输入的不是数字,请重新输入蓝色参数(0~255): ')bule = int(raw_input())item = list() item.append((red,green,bule))print item[0][0]print item[0][1]print item[0][2]print 'item: ' + str(item) + '\n'img = Image.open(filename)#img = img.convert('RGBA')newImg = Image.new('RGBA',img.size)print 'newImg.mode: ' + str(newImg.mode)imgData = img.getdata()newData = list()for newItem in imgData:if(newItem[0] == item[0][0] and newItem[1] == item[0][1] and newItem[2] == item[0][2]):newData.append((newItem[0],newItem[1],newItem[2],0))else:newData.append((newItem[0],newItem[1],newItem[2],255))#print encodeChinese('不相等的情况: ') + str(newItem) + '\n'print 'hello'newImg.putdata(newData)fName,fpost = fName.split('.')print 'fName ' + str(fName)fpost =fName + '.png'print 'fpost :' + str(fpost)newImg.save(targetdir + os.sep + fpost)

编橙之家文章,

评论关闭