Beispiel für einen Python-Verifizierungscode
#!/usr/bin/env python
#coding=utf-8
import random
import Image, ImageDraw, ImageFont, ImageFilter
_letter_cases = "abcdefghjkmnpqrstuvwxy" # 小写字母,去除可能干扰的i,l,o,z
_upper_cases = _letter_cases.upper() # 大写字母
_numbers = ''.join(map(str, range(3, 10))) # 数字
init_chars = ''.join((_letter_cases, _upper_cases, _numbers))
fontType="/usr/share/fonts/truetype/freefont/FreeSans.ttf"
def create_validate_code(size=(120, 30),
chars=init_chars,
img_type="GIF",
mode="RGB",
bg_color=(255, 255, 255),
fg_color=(0, 0, 255),
font_size=18,
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
def create_lines(draw,n_line,width,height):
'''绘制干扰线'''
line_num = random.randint(n_line[0],n_line[1]) # 干扰线条数
for i in range(line_num):
# 起始点
begin = (random.randint(0, width), random.randint(0, height))
#结束点
end = (random.randint(0, width), random.randint(0, height))
draw.line([begin, end], fill=(0, 0, 0))
def create_points(draw,point_chance,width,height):
'''绘制干扰点'''
chance = min(100, max(0, int(point_chance))) # 大小限制在[0, 100]
for w in xrange(width):
for h in xrange(height):
tmp = random.randint(0, 100)
if tmp > 100 - chance:
draw.point((w, h), fill=(0, 0, 0))
def create_strs(draw,chars,length,font_type, font_size,width,height,fg_color):
'''绘制验证码字符'''
'''生成给定长度的字符串,返回列表格式'''
c_chars = random.sample(chars, length)
strs = ' %s ' % ' '.join(c_chars) # 每个字符前后以空格隔开
font = ImageFont.truetype(font_type, font_size)
font_width, font_height = font.getsize(strs)
draw.text(((width - font_width) / 3, (height - font_height) / 3),strs, font=font, fill=fg_color)
return ''.join(c_chars)
if __name__ == "__main__":
code_img = create_validate_code()
code_img[0].save("validate.gif", "GIF")
print code_img[1]
Heiße KI -Werkzeuge
Undress AI Tool
Ausziehbilder kostenlos
AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.
Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos
Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen
Heißer Artikel
Beliebtes Werkzeug
Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor
SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen
Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung
Dreamweaver CS6
Visuelle Webentwicklungstools
SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)
Github: Entdecken, Teilen und Beitrag zum Code
May 08, 2025 am 12:26 AM
GitHub ist die bevorzugte Plattform für Entwickler, um Code zu entdecken, zu teilen und beizutragen. 1) Suchen Sie spezifische Codebasen über Suchfunktionen wie Python -Projekte. 2) Erstellen Sie ein Repository und schieben Sie Code, um sie mit Entwicklern auf der ganzen Welt zu teilen. 3) Nehmen Sie an Open Source -Projekten teil und tragen Sie Code über Gabel und Pullrequest bei.
Code-Sharing für Horizon 2 West Cradle of Echoes
Mar 29, 2024 pm 05:06 PM
Wenn Spieler Horizon 2 West spielen, müssen sie die Konsole überprüfen und in der zehnten Hauptmission „Cradle of Echoes“ einen Code eingeben. Viele Spieler kennen den Code nicht, und der Konsolencode lautet 237. Code-Sharing-Antwort für Horizon 2 West: Cradle of Echoes: 237. 1. Die Konsole verwendet 236, um den Spieler zu verwirren. Was wirklich benötigt wird, ist die versteckte Nummer 237. 2. Der Code kann im [Notsignal] gefunden werden ]-Datenpunkt, in Val wird dies auch bei der Interaktion mit der Konsole angezeigt. 3. Eine falsche Eingabe führt zu einem leeren Container. 4. Tippen Sie auf „board-notebook-data point-text data point-task-call“, um Hilfe zu erhalten. Schließlich wird 237 unter den Koordinaten angezeigt.
Erhabene Textausschnitte: Erstellen Sie wiederverwendbare Codeblöcke für die Effizienz
Apr 02, 2025 pm 02:08 PM
SublimeteXTSNippets ist eine vordefinierte Codevorlage, die den Code schnell durch Abkürzungschlüsseln oder Triggerwörter einfügt, um die Programmierungseffizienz zu verbessern. 1. Erstellen von Snippets: Basierend auf dem XML-Format, gespeichert in der Sublime-Snippet-Datei. 2. Verwenden Sie Beispiel: Geben Sie ein Triggerwort wie "def" oder "html5" ein und drücken Sie die Registerkarten -Taste, um die Codestruktur automatisch zu generieren. 3. Vermeiden Sie Fehler: Stellen Sie sicher, dass die Triggerwörter eindeutig sind, den richtigen Bereich festlegen und das XML -Format korrekt halten.
Wie verwende ich die Snippets -Funktion von Sublime Text, um wiederverwendbare Codevorlagen zu erstellen?
Jul 08, 2025 am 12:33 AM
Die Code -Snippet -Funktion von Sublimetext kann die Codierungseffizienz durch voreingestellte Vorlagen verbessern. Die spezifischen Schritte sind: 1. Erstellen Sie ein neues Fragment über Tools> Entwickler> NewsNippet ..., ersetzen Sie den Platzhalter in der Vorlage und speichern Sie es im Standardordner. 2. Verwenden Sie die Taste Trigger Word und Registerkarte im Code, um häufig gemeinsame Strukturen einzufügen, wie z. 3.. Sie können dem Fragment Variablen und Platzhalter hinzufügen, z. B. das Festlegen $ {1: FunktionName}, $ {2: Argumente} und andere Tags, wenn JavaScript -Funktionsvorlagen definiert werden, um eine schnelle Anpassung zu erreichen. 4.. Benutzerdefinierte Fragmente werden standardmäßig in Packag gespeichert
Code-Sharing der Mall-Logistikschnittstelle: PHP-Technologie realisiert die Funktion des schnellen Druckens von Frachtbriefen!
Sep 12, 2023 am 09:24 AM
Code-Sharing der Mall-Logistikschnittstelle: PHP-Technologie realisiert die Funktion des schnellen Druckens von Frachtbriefen! Mit der rasanten Entwicklung des E-Commerce ist die Mall-Logistik zu einem unverzichtbaren Bestandteil der E-Commerce-Plattform geworden. Für Händler kann ein effizientes Logistiksystem das Einkaufserlebnis der Benutzer verbessern, die Bindung der Benutzer erhöhen und so mehr Verkaufschancen eröffnen. Im Hinblick auf die Realisierung der Funktion des schnellen Druckens von Frachtbriefen kann die PHP-Technologie einen großen Vorteil bieten. Als Open-Source-Skriptsprache wird PHP häufig in der Website-Entwicklung und Anwendungsentwicklung eingesetzt. Es hat eine einfache Syntax und ist einfach
Wie verwende ich Code -Snippets in Sublime Text?
Jul 12, 2025 am 12:46 AM
Die Verwendung von Sublimetexts Code -Snippet -Funktion kann häufig verwendete Codes über schnelle Triggerwörter einfügen, wodurch die Codierungseffizienz erheblich verbessert wird. Führen Sie die folgenden Schritte aus, um ein benutzerdefiniertes Fragment zu erstellen: 1. Klicken Sie auf Tools> Entwickler> NewsNippet…; 2. Definieren Sie den Inhalt und auslösen Wörter in der Vorlage; 3. Speichern Sie es als. Wenn Sie beispielsweise DIVC eingegeben haben, kann das Drücken der Registerkarte Taste ein HTMLDIV -Tag mit Klassen- und Inhaltsgerätigern einfügen. Zusätzlich können Sie den aktuellen Dateityp anzeigen, indem Sie das Befehlsfenster (Strg Shift P) und "InsertSnippet" eingeben, indem Sie das Befehlsfeld (STRG Shift P) öffnen und "InsertsNippet" eingeben.
Wie verwende ich Code -Snippets in VS -Code?
Jul 15, 2025 am 01:46 AM
Die Methode zum schnellen Aufruf integrierter Code-Snippet in VSCODE besteht darin, das Trigger-Wort einzugeben und die Registerkarten-Taste wie für oder für CLG zu drücken. Sie können "IniseNippet" über das Befehlsfeld eingeben, um die von der aktuellen Sprache unterstützten Fragmente anzuzeigen. Um benutzerdefinierte Code -Snippets hinzuzufügen, müssen Sie die Snippet -Einstellungen für Benutzercode öffnen und dann die Sprache auswählen und die JSON -Datei bearbeiten, um eine neue Vorlage hinzuzufügen. Sie können das GitHub-Konto verwenden, um die Einstellungen zu synchronisieren, um die gemeinsame Nutzung von Code-Snippets zu erreichen. Das Beherrschen dieser Techniken kann die Codierungseffizienz erheblich verbessern.
So verwenden Sie Code -Snippets in VS -Code
Aug 11, 2025 pm 08:17 PM
Verwenden Sie integrierte Code-Snippets: Geben Sie das Trigger-Wort in die entsprechende Sprachdatei ein (z. B. Eingabe für in JavaScript und drücken Sie die Registerkarte, um eine für die Schleife zu generieren, und geben Sie in HTML ein und drücken Sie die Registerkarte, um eine HTML5-Vorlage zu generieren) und identifizieren verfügbare Fragmente über das Puzzle-Symbol in IntelliSense. 2. Erstellen Sie ein benutzerdefiniertes Fragment: Wählen Sie "Benutzercode -Snippet konfigurieren" über das Befehlsfeld (Strg Shift P oder CMD Shift P) und erstellen Sie Fragmente globaler oder spezifischer Sprachen und definieren Sie den Namen, das Präfix, den Inhalt und die Beschreibung in der Open JSON -Datei. 3. Die Fragmentstruktur umfasst Präfix (Trigger -Wort), Körper (Einfügen des Code




