''' 验证码的图片制作 '''
from PIL import Image,ImageFilter,ImageDraw,ImageFont
import random
def rndChar():
return chr(random.randint(65, 90)) # 随机颜色1:
def rndColor():
return (random.randint(64, 255),
random.randint(64, 255)
random.randint(64, 255)) # 随机颜色2:
def rndColor2():
return (random.randint(32, 127)
random.randint(32, 127),
random.randint(32, 127))
width = 210
height = 100
img = Image.new('RGB',(width,height),(255,255,255))
font = ImageFont.truetype("arial.ttf", 36)
# font = ImageFont.truetype('Arial.ttf', 36)
# 创建Draw对象: draw = ImageDraw.Draw(img)
# 填充每个像素:
for x in range(width):
for y in range(height):
draw.point((x, y)
fill=rndColor())
l=[] #定义一个列表,保存图片内容
# 输出文字:
for t in range(4):
m = rndChar()
draw.text((55 * t + 10, 20), m, font=font, fill=rndColor2()) l.append(m)
# 模糊:
# image = img.filter(ImageFilter.BLUR)
# image.show()
print(l) #输出图片中的字符串,以便于进行后期的比较
img.show() #查看效果图
img.save(r'C:\Users\鹏COMPUTER\Desktop\m.jpg', 'jpeg');
这以上是我所觉得简单的代码,做了额外的小部分扩充,但是这个的背景是根据每个点都设置不同的颜色,所以有了背景色,否则背景色是白色。
刚接触,希望路过的的大神可以指出更好的方法,互相学习!
网友评论