Python は画像検証コードを作成するだけです
-誰もが Python を学ぶことができます--
ここで示されている検証コードはシンプルで、文字をひねることもできます

Python サードパーティ ライブラリは非常に強力で、PIL はサードパーティです-Python 用のパーティ画像処理モジュール。画像検証コードの生成にも使用できます
PIL のインストール
コマンドのインストール:
pip install pillow
ソース コードのダウンロード インストール:
アドレスのコピー:
PIL の使用法
例: 画像の生成と塗りつぶしtext
#!/usr/bin/python#-*-coding:utf-8-*- from PIL import Image, ImageDraw, ImageFont, ImageFilter# 实例一个图片对象240 x 60:width = 60 * 4height = 60# 图片颜色clo = (43, 34, 88) # 我觉得是紫蓝色image = Image.new('RGB', (width, height), clo)# 创建Font对象:# 字体文件可以使用操作系统的,也可以网上下载font = ImageFont.truetype('./font/Arial.ttf', 36)# 创建Draw对象:draw = ImageDraw.Draw(image)# 输出文字:str1 = "ren ren Python"w = 4 #距离图片左边距离h = 10 #距离图片上边距离 draw.text((w, h), str1, font=font)# 模糊: image.filter(ImageFilter.BLUR)code_name = 'test_code_img.jpg'save_dir = './{}'.format(code_name) image.save(save_dir, 'jpeg') print("已保存图片: {}".format(save_dir))
(venv) allenwoo@~/renren/code$ python test2.py 已保存图片: ./test_code_img.jpg
画像は次のとおりです:

テキストには色がありません。色を追加することもできます。textにfillパラメータを渡すだけです
draw.text((w, h ) , str1, font=font, fill = (78, 64, 65))
任意の色を追加します

n 間隔ごとに背景を多数の小さなドットにすることもできます。ピクセルを次のように塗りつぶします。他の色、例:
#!/usr/bin/python#-*-coding:utf-8-*- from PIL import Image, ImageDraw, ImageFont, ImageFilter# 实例一个图片对象240 x 60:width = 60 * 4height = 60# 图片颜色clo = (43, 34, 88) # 我觉得是紫蓝色image = Image.new('RGB', (width, height), clo)# 创建Font对象:# 字体文件可以使用操作系统的,也可以网上下载font = ImageFont.truetype('./font/Arial.ttf', 36)# 创建Draw对象:draw = ImageDraw.Draw(image)# 填充像素:# 宽每隔 20, 高每隔5, 形成坐标x,y# 红色:220,20,60 for x in range(0, width, 20): for y in range(0, height, 5): draw.point((x, y), fill=(220, 20, 60))# 输出文字:str1 = "we are renren"w = 4 #距离图片左边距离h = 10 #距离图片上边距离 draw.text((w, h), str1, font=font, fill = (78, 64, 65))# 模糊: image.filter(ImageFilter.BLUR)code_name = 'test_code_img.jpg'save_dir = './{}'.format(code_name) image.save(save_dir, 'jpeg') print("已保存图片: {}".format(save_dir))
結果画像:

PIL で確認コードを作成します
上記と前に学習したランダム ジェネレーターを使用して確認コードを作成します今、
生成します確認コード
#!/usr/bin/python#-*-coding:utf-8-*-from uuid import uuid1from PIL import Image, ImageDraw, ImageFont, ImageFilterimport randomdef rnd_char():''' 随机一个字母或者数字 :return: '''# 随机一个字母或者数字 i = random.randint(1,3)if i == 1:# 随机个数字的十进制ASCII码 an = random.randint(97, 122)elif i == 2:# 随机个小写字母的十进制ASCII码 an = random.randint(65, 90)else:# 随机个大写字母的十进制ASCII码 an = random.randint(48, 57)# 根据Ascii码转成字符,return回去return chr(an)# 干扰def rnd_dis():''' 随机一个干扰字 :return: ''' d = ['^','-', '~', '_', '.'] i = random.randint(0, len(d)-1)return d[i]# 两个随机颜色都规定不同的区域,防止干扰字符和验证码字符颜色一样# 随机颜色1:def rnd_color():''' 随机颜色,规定一定范围 :return: '''return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))# 随机颜色2:def rnd_color2():''' 随机颜色,规定一定范围 :return: '''return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))def create_code():# 240 x 60: width = 60 * 4 height = 60 image = Image.new('RGB', (width, height), (192, 192, 192))# 创建Font对象: font = ImageFont.truetype('./font/Arial.ttf', 36)# 创建Draw对象: draw = ImageDraw.Draw(image)# 填充每个像素:for x in range(0, width, 20):for y in range(0, height, 10): draw.point((x, y), fill=rnd_color())# 填充字符 _str = ""# 填入4个随机的数字或字母作为验证码for t in range(4): c = rnd_char() _str = "{}{}".format(_str, c)# 随机距离图片上边高度,但至少距离30像素 h = random.randint(1, height-30)# 宽度的化,每个字符占图片宽度1/4,在加上10个像素空隙 w = width/4 * t + 10 draw.text((w, h), c, font=font, fill=rnd_color2())# 实际项目中,会将验证码 保存在数据库,并加上时间字段 print("保存验证码 {} 到数据库".format(_str))# 给图片加上字符干扰,密集度由 w, h控制for j in range(0, width, 30): dis = rnd_dis() w = t * 15 + j# 随机距离图片上边高度,但至少距离30像素 h = random.randint(1, height - 30) draw.text((w, h), dis, font=font, fill=rndColor())# 模糊: image.filter(ImageFilter.BLUR)# uuid1 生成唯一的字符串作为验证码图片名称 code_name = '{}.jpg'.format(uuid1()) save_dir = './{}'.format(code_name) image.save(save_dir, 'jpeg') print("已保存图片: {}".format(save_dir))# 当直接运行文件的是和,运行下面代码if __name__ == "__main__": create_code()




難しいと思いますか? ?最後に、この検証コード生成コードには理解する必要のある論理的な問題がいくつかあります。学習プロセス中に問題が発生した場合、または学習リソースを入手したい場合は、学習交換グループ
626062078 への参加を歓迎します。一緒に Python を学びましょう。以上がPython は画像検証コードを作成するだけですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

DebianシステムのReadDir関数は、ディレクトリコンテンツの読み取りに使用されるシステムコールであり、Cプログラミングでよく使用されます。この記事では、ReadDirを他のツールと統合して機能を強化する方法について説明します。方法1:C言語プログラムを最初にパイプラインと組み合わせて、cプログラムを作成してreaddir関数を呼び出して結果をinclude#include#include inctargc、char*argv []){dir*dir; structdireant*entry; if(argc!= 2){(argc!= 2){

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

DebianシステムでHTTPSサーバーの構成には、必要なソフトウェアのインストール、SSL証明書の生成、SSL証明書を使用するWebサーバー(ApacheやNginxなど)の構成など、いくつかのステップが含まれます。 Apachewebサーバーを使用していると仮定して、基本的なガイドです。 1.最初に必要なソフトウェアをインストールし、システムが最新であることを確認し、ApacheとOpenSSL:sudoaptupdatesudoaptupgraysudoaptinstaをインストールしてください

DebianでGitLabプラグインを開発するには、特定の手順と知識が必要です。このプロセスを始めるのに役立つ基本的なガイドを以下に示します。最初にgitlabをインストールすると、debianシステムにgitlabをインストールする必要があります。 GitLabの公式インストールマニュアルを参照できます。 API統合を実行する前に、APIアクセストークンを取得すると、GitLabのAPIアクセストークンを最初に取得する必要があります。 gitlabダッシュボードを開き、ユーザー設定で「アクセストーケン」オプションを見つけ、新しいアクセストークンを生成します。生成されます

アパッチはインターネットの背後にあるヒーローです。それはWebサーバーであるだけでなく、膨大なトラフィックをサポートし、動的なコンテンツを提供する強力なプラットフォームでもあります。モジュラー設計を通じて非常に高い柔軟性を提供し、必要に応じてさまざまな機能を拡張できるようにします。ただし、モジュール性は、慎重な管理を必要とする構成とパフォーマンスの課題も提示します。 Apacheは、高度にカスタマイズ可能で複雑なニーズを満たす必要があるサーバーシナリオに適しています。

ApacheはCで書かれています。言語は、速度、安定性、移植性、直接ハードウェアアクセスを提供し、Webサーバーの開発に最適です。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。
