파이썬 알고리즘을 찾아 검증 코드를 생성합니다.

Def 유전자 _ 텍스트 ():

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') # 검증 코드 그림을 저장합니다.