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

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ù)器托管
国产高清不卡av在线| 日韩精品一区二区三区都在看| 免费亚洲一区二区三区| 亚洲男人天堂在线播放| 91桃色网站在线免费观看| 中文字幕在线看精品乱码| 午夜一区二区精品视频国产| 国产午夜福利不卡在线观看| 黄色大片黄色大片黄色大片| 伦理中文字幕一区二区| 日韩一区二区三区中文字幕| 国产日韩欧美亚洲中文| 国产又粗又长又大又长| 哈昂~不要啊在线观看| 久久不卡高清免费av| 亚洲av色国产精品色午含羞草| 97在线观看免费播放| 夫妻爱爱视频在线观看| 国产精品欧美久久久久久| 久久av免费一区二区观看| 每日更新中文字幕粉嫩av| 在线看日本十八禁网站| 韩国av在线免费观看| 日韩色欧美色国产精品| 亚洲另类视频一区二区| 国产精品神马午夜福利| 日本少妇人妻一区二区| 蜜臀av一区二区高清| 日本一区二区三区精彩视频| 久久国产精品亚洲欧美| 91麻豆精品在线观看| 求个手机免费在线观看av网址| 亚洲福利视频在线观看免费| 久久精品国产亚洲av高清大结局 | 亚洲国产精品视频中文字幕| 婷婷色悠悠,色悠悠激情啪啪 | 日韩精品一区高清视频| 精品一区二区久久久久久| 国内熟妇人妻色在线三级| 国产一区二区av免费| 国产精品自偷自偷自偷|