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

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ù)器托管
亚洲精品欧美无人区乱码| 在线观看免费国产b片| 乱色熟女一区二区三区| 久久五十路六十路熟妇中出| 强d乱码中文字幕在线| 超碰国产精品一区二区| 91麻豆亚洲国产成人久久精品| 亚洲品质自拍在线观看| 91超碰在线观看中文| 欧美一区二区日韩一区二区| 欧美亚洲另类不卡在线| 熟年人妻一区二区三区| 国产成人亚洲精品乱码| 蜜臀在线免费观看黄片视频| 久久av天堂在线观看| 日韩欧美亚洲另类视频| 色婷婷一区二区三区影片| 欧美亚洲另类日韩综合网| 声入人心第一季在线观看| 久久精品中文字幕人妻| 国产成年人拍拍免费视频| 一本之道久久成人综合| 日本不卡免费一区二区视频| 亚洲超清av在线播放一区二区| 少妇高潮惨叫久久麻豆传| 91九色中文视频在线观看| 午夜一区二区精品视频国产| 日本啪啪精品一区二区三区| 日韩精品人妻一区二区免| 亚洲,日韩,欧美久久综合| 国产成人综合精品久久| 午夜影院网站在线看黄| 九九99九九99九九精品在线观看| 视频一区二区日韩不卡| 日日躁夜夜躁久久狠狠躁| 亚洲女久久久噜噜噜综合| 久久综合给合综合久久| 美女呻吟被爽到高潮在线| 日韩一日韩一区二区三电影在线观看 | 国产成人自拍视频网站| 亚洲成av人片乱码午夜|