Source = list (문자열. 문자)
범위 (0, 10) 내의 인덱스의 경우:
Source.append (str (인덱스))
\ "\" 을 (를) 반환합니다. 추가 (임의). Sample (source, number)) # NUMBER 는 인증 코드를 생성하는 자릿수입니다.
그런 다음 그림을 만들어 문자열에 써야 합니다. 설명해야 할 것은 안의 서체가 다른 시스템에 의존한다는 것이다. 시스템 글꼴 경로를 찾을 수 없는 경우 설정할 수 있습니다.
Def 유전자 코드 ():
폭, 높이 = 치수 # 폭 및 높이
Image = image.new ('rgba', (width, height), bgcolor) # 그림을 만듭니다.
Font = imagefont.truetype (font _ path, 25) # 검증 코드의 글꼴 및 크기
Draw = ImageDraw 입니다. 그리기 (이미지) # 브러쉬 만들기
Text = gene_text() # 문자열을 생성합니다
Font_width, font _ height = font.getsize (텍스트)
Draw.text ((width-font _ width)/number, (height-font_height)/number), text,
Font= font, fill=fontcolor) # 문자열을 채웁니다
다음으로, 우리는 그림에 간섭선을 그릴 것이다.
# 간섭 선을 그립니다
유전자 선 정의 (그리기, 폭, 높이):
Begin = (random.randint(0, 폭), random.randint(0, 높이))
End = (random.randint(0, 폭), random.randint(0, 높이))
Draw.line([begin, end], fill = linecolor)
마지막으로 왜곡을 만들고 필터를 추가하여 인증 코드의 효과를 향상시킵니다.
Image = Image.transform ((폭 +20, 높이+10), image.affine, (1,)
Image = image.filter (imagefilter.edge _ enhance _ more) # filter, 경계 개선.
Image.save('idencode.png') # 검증 코드 그림을 저장합니다.