pillow生成検証コードピクチャpython 3.7

1266 ワード

import string
import random

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont


def GetCodeChar(len):
   """     len      """

   canUseChar = string.ascii_letters + "0123456789"
   vCode = ""

   for _ in range(len):
      vCode += random.choice(canUseChar)

   return vCode


def GetValidImg():

    #           
    colorImg = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))

    img = Image.new(mode="RGB", size=(120, 30), color=colorImg)  #            

    draw = ImageDraw.Draw(img, "RGB")
    font = ImageFont.truetype(r"C:\Windows\Fonts\FZSTK.TTF", 25)

    vCode = GetCodeChar(4)

    for _ in range(len(vCode)):
        draw.text([5+_*30, 4], vCode[_], (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), font=font)  #                        。

    del draw

        # img.show()認証コード画像の表示
        # img.save(「path」)画像を保存
        """
画像をメモリに書き込む
       import io
       f = io.BytesIO()
       img.save(f, "png")
       print(buf.getvalue())
       """       
 
参照先:https://www.cnblogs.com/eric_yi/p/7867676.html