玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python jpg图片裁剪处理源码

python 培训

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

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

# -*- coding: utf-8 -*-
import numpy
import Image
import os
import sys

def 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.iplaypython.com
for parent,dirnames,filenames in os.walk(rootdir):
	for filename in filenames:
		fName = filename;
		print fName
		filename = rootdir + os.sep + filename
		fn,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)

玩蛇网原创,转载请注明文章出处和来源网址:http://www.iplaypython.com/code/graphics/gr2184.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网Python新手QQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
文章发布日期:2016-06-21 14:19 玩蛇网 www.iplaypython.com

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
特别推荐
去顶部去底部