欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

python中使用PIL制作并驗(yàn)證圖片驗(yàn)證碼-創(chuàng)新互聯(lián)

驗(yàn)證碼制作

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)黃驊,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
#string模塊自帶數(shù)字、字母、特殊字符變量集合,不需要我們手寫(xiě)集合
import string
import random
import os
import uuid

import settings
from PIL import Image, ImageDraw, ImageColor, ImageFilter, ImageFont


class Code(object):
 # 生成隨機(jī)生成數(shù)字或字母
 def random_hexdigits(self, len=1):
 return random.sample(string.hexdigits, len)
 
 # 生成干擾字符
 def punctuation(self, len=1):
 return tuple(random.sample(string.punctuation, len))
 
 # 定義干擾字符顏色
 def random_color(self, min=64, max=255):
 return tuple((random.randint(min, max) for i in range(3)))
 
 # 生成驗(yàn)證碼
 def creat_code(self, width=80, height=24, color=(192, 192, 192)):
 image = Image.new('RGB', (width, height), color)
 #建議下載幾款字體,變換下風(fēng)格,我在setting粒定義了static路徑,這里就直接導(dǎo)入了
 font = ImageFont.truetype(os.path.join(settings.STATICPATH, 'fonts/Lora-Regular.ttf'), 20)
 draw = ImageDraw.Draw(image)
 self.fill_color(draw, image, 5)
 self.fill_dischar(draw, image, 10)
 code = self.fill_char(draw, image, 4, 10, font)
 image_name = '{}.jpeg'.format(uuid.uuid4().hex)
 image_path = os.path.join(settings.STATICPATH, 'code/{}'.format(image_name))
 print(image_path)
 image.save(image_path)
 return {'code': code, 'image_path': image_path}
 
 # 填充顏色
 def fill_color(self, draw, image, interval):
 for i in range(0, image.width, interval):
  for j in range(0, image.height, interval):
  draw.point((i, j), fill=self.random_color())
 
 # 填充驗(yàn)證碼
 def fill_dischar(self, draw, image, interval):
 for i in range(0, image.width, interval):
  dis = self.punctuation()
  j = random.randrange(3, image.height - 3)
  draw.text((i, j), dis[0], fill=self.random_color(64, 255))
 
 # 填充驗(yàn)證碼
 def fill_char(self, draw, image, num, interval, font):
 code = ''
 for i in range(num):
  cha = self.random_hexdigits()
  code += str(cha[0])
  j = random.randrange(0, 5)
  # print(cha)
  # print(image.width*(i/num)+interval,j)
  draw.text((image.width * (i / num) + interval, j), cha[0], fill=self.random_color(32, 127), font=font)
 return code


if __name__ == "__main__":
 code = Code()
 print(code.creat_code())

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:python中使用PIL制作并驗(yàn)證圖片驗(yàn)證碼-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://aaarwkj.com/article24/codgje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、微信小程序、定制網(wǎng)站、標(biāo)簽優(yōu)化、微信公眾號(hào)、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
未满18禁止入内在线观看| 精品一区中文字幕少妇人妻| 美国真人性做爰视频免费| 国产免费看黄色的网站| 五月婷婷色丁香综合激情| 久久精品国产亚洲熟女| 日本成人午夜电影网站| 国产美女极度色诱视频| 久久精品国产亚洲熟女| 国产不卡高清视频在线| 日本国产精品免费在线观看| 97日韩在线免费视频网站| 亚洲天堂av一区二区在线| 一区二区少妇黄色三区| 国产原创剧情av网址| 92国产精品午夜福利| 最新日韩一区二区在线| 免费日本高清色噜噜视频| 国产999精品免费国产| 国产av高清亚洲精品高清二部| 色综合久久天天射天天干| 国产自拍在线视频精品| 欧美 日韩一区二区在线| 欧美日韩人美精品一区在线| 欧美口爆吞精在线播放| 日韩熟女av中文字幕| 国产亚洲超级97免费视频| 日本东京热在线免费观看| 午在线亚洲男人午在线| 手机在线观看午夜小视频| 欧美亚洲另类在线日韩国产| 老司机看片午夜久久福利| 国产白丝免费在线观看| 亚洲av产在线精品亚洲第| 免费欧美一级黄片播放| 国产女主播精品视频一区| 国产日本欧美一区二区三区| 精品日韩av一区二区三区| 亚洲国产精品久久久精品| 色婷婷av一区二区三区张| 青娱乐青青草91在线|