def create_validate_code(size=(120, 30),
chars=init_chars,
img_type="GIF",
mode="RGB",
bg_color=(245, 245, 245),
fg_color=color_random,
font_size=24,
font_type=fontType,
length=4,
draw_lines=True,
n_line=(1, 2),
draw_points=True,
point_chance=2):
'''
@todo: ???????
@param size: ?????????????????(120, 30)
@param chars: ?????????????
@param img_type: ???????????GIF?????GIF?JPEG?TIFF?PNG
@param mode: ????????RGB
@param bg_color: ??????????
@param fg_color: ?????????????????#0000FF
@param font_size: ???????
@param font_type: ????????? ae_AlArabiya.ttf
@param length: ???????
@param draw_lines: ??????
@param n_lines: ?????????????????(1, 2)???draw_lines?True???
@param draw_points: ??????
@param point_chance: ?????????????[0, 100]
@return: [0]: PIL Image??
@return: [1]: ??????????
'''
width, height = size # ?? ?
img = Image.new(mode, size, bg_color) # ????
draw = ImageDraw.Draw(img) # ????
if draw_lines:
create_lines(draw, n_line, width, height)
if draw_points:
create_points(draw, point_chance, width, height)
strs = create_strs(draw, chars, length, font_type, font_size, width, height, fg_color())
# ??????
params = [1 - float(random.randint(1, 2)) / 100,
0,
0,
0,
1 - float(random.randint(1, 10)) / 100,
float(random.randint(1, 2)) / 500,
0.001,
float(random.randint(1, 2)) / 500
]
img = img.transform(size, Image.PERSPECTIVE, params) # ????
img = img.filter(ImageFilter.EDGE_ENHANCE_MORE) # ?????????????
return img, strs
评论列表
文章目录