python生成隨機圖片驗證碼
阿新 • • 發佈:2019-01-25
from PIL import Image,ImageDraw,ImageFont,ImageFilter
import random
import string
chars=string.digits+string.ascii_letters
chars=random.sample(chars,4)
print(chars)
def rndColor(): #產生隨機顏色
return (random.randint(64,255),random.randint(64,255),random.randint(64,255))
def rndChar(i): #產生隨機字母
return chars[i]
#return chr(random.randint(65,90))
def rndColor2():
return (random.randint(30,120),random.randint(30,120),random.randint(30,120))
height=60
width=240
image=Image.new('RGB',(width,height),(255,255,255)) #白色畫布
font=ImageFont.truetype("C:\Windows\Fonts\Arial.ttf",36) #畫筆字型
draw=ImageDraw.Draw(image) #繪畫物件
for i in range(width):
for j in range(height):
draw.point((i,j),fill=rndColor()) #隨機逐畫素填充顏色
for i in range(4):
draw.text((60*i+10,10),rndChar(i),font=font,fill=rndColor2()) #文字繪畫
image=image.filter(ImageFilter.BLUR) #產生模糊感
image.save('code.jpg','jpeg')
image.show()
import random
import string
chars=string.digits+string.ascii_letters
chars=random.sample(chars,4)
print(chars)
def rndColor(): #產生隨機顏色
return (random.randint(64,255),random.randint(64,255),random.randint(64,255))
def rndChar(i): #產生隨機字母
return chars[i]
#return chr(random.randint(65,90))
def rndColor2():
return (random.randint(30,120),random.randint(30,120),random.randint(30,120))
height=60
width=240
image=Image.new('RGB',(width,height),(255,255,255)) #白色畫布
font=ImageFont.truetype("C:\Windows\Fonts\Arial.ttf",36) #畫筆字型
draw=ImageDraw.Draw(image) #繪畫物件
for i in range(width):
for j in range(height):
draw.point((i,j),fill=rndColor()) #隨機逐畫素填充顏色
for i in range(4):
draw.text((60*i+10,10),rndChar(i),font=font,fill=rndColor2()) #文字繪畫
image=image.filter(ImageFilter.BLUR) #產生模糊感
image.save('code.jpg','jpeg')
image.show()