python技巧——自己做验证码
 
生成自己的验证码
#coding:utf-8
import Image
import ImageDraw, ImageFont, ImageFilter
import random,time
def create_verification_code():
	# 随机字母:
	def rndChar():
		return chr(random.randint(65, 90))
	# 随机数字:
	def rndInt():
		return str(random.randint(0, 9))
	#随机决定产生数字或者字符	
	def rncharacter():
		if random.randint(0, 1):
			return rndChar()
		else:
			return rndInt()
	# 随机颜色1:
	def rndColor():
		return (random.randint(64, 128), random.randint(64, 128), random.randint(64, 128))
	
	# 随机颜色2:
	def rndColor2():
		return (random.randint(32, 255), random.randint(32, 255), random.randint(32, 255))
	verification_code=[]
	# 240 x 60:
	width = 60 * 4
	height = 60
	image = Image.new('RGB', (width, height), (255, 255, 255))
	# 创建Font对象:
	font = ImageFont.truetype('arial.ttf', 36)
	# 创建Draw对象:
	draw = ImageDraw.Draw(image)
	
	# 填充每个像素:
	for x in range(width):
		for y in range(height):
			draw.point((x, y), fill=rndColor())
	# 输出文字,制指定文字的颜色和字体类型
	for t in range(4):
		verification_code_tmp=rncharacter()
		draw.text((60 * t + 10, 10), verification_code_tmp, font=font, fill=rndColor2())
		verification_code.append(verification_code_tmp)
	#draw.text((60 * t + 10, 10), rndChar(),  fill=rndColor2())
	# 模糊:
	#image = image.filter(ImageFilter.BLUR)
	#凸显数字
	#image = image.filter(ImageFilter.DETAIL)
	#凸显轮廓
	#image = image.filter(ImageFilter.CONTOUR)
	#明显
	image = image.filter(ImageFilter.EDGE_ENHANCE)
	image_name='yanzhengma/'+time.strftime('%Y-%m-%d_%H-%M-%S ')+'.jpg'
	image.save(image_name, 'jpeg');
	return verification_code
print create_verification_code()参考:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00140767171357714f87a053a824ffd811d98a83b58ec13000
 

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号