django-simple-captcha 驗證碼干擾線隨機點位
阿新 • • 發佈:2019-01-07
CAPTCHA_NOISE_FUNCTIONS = ( 'captcha.helpers.noise_null',# 設定樣式 'captcha.helpers.noise_arcs',# 設定干擾線 #'captcha.helpers.noise_arcs_random', # 設定自定義的干擾線 #'captcha.helpers.noise_dots',# 設定干擾點 )
官方寫的方法干擾線是固定的
CAPTCHA_NOISE_FUNCTIONS = ( 'captcha.helpers.noise_null',# 設定樣式 # 'captcha.helpers.noise_arcs',# 設定干擾線 'captcha.helpers.noise_arcs_random', # 設定自定義的干擾線 #'captcha.helpers.noise_dots',# 設定干擾點 )
然後找到captcha/helpers.py 在這個檔案新增下面的函式
def noise_arcs_random(draw, image): size = image.size draw.arc([-20, -20, random.randint(size[0]/1.5, size[0]), random.randint(15, 25)], 0, 295, fill=settings.CAPTCHA_FOREGROUND_COLOR) draw.line([-20, random.randint(5, size[1]), random.randint(size[0]/1.5, size[0]), random.randint(5, size[1])], fill=settings.CAPTCHA_FOREGROUND_COLOR) draw.line([-20, random.randint(5, size[1]), random.randint(size[0]/1.5, size[0]), random.randint(5, size[1])], fill=settings.CAPTCHA_FOREGROUND_COLOR) return draw