zoukankan      html  css  js  c++  java
  • Python生成二维码图片

    from captcha.image import ImageCaptcha
    import numpy as np
    from PIL import Image
    import random
    import time
    import os
    import cv2
    import matplotlib.pyplot as plt
    number = ['0','1','2','3','4','5','6','7','8','9']
    alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    ALPHABET = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
    
    # generate an random array of size 4  
    def random_captcha_text(char_set=number+alphabet+ALPHABET,captcha_size=4):
        captcha_text=[]
        for i in range(captcha_size):
            random.seed(time.time())
            random.shuffle(char_set)
            # print(char_set)
            c=random.choice(char_set)
            captcha_text.append(c)
        return captcha_text
    
    #  Randomly generate pictures of four numbers  
    def gen_captcha_text_and_image():
        while(1):
            image=ImageCaptcha()
            captcha_text=random_captcha_text()
            captcha_text="".join(captcha_text)
            captcha=image.generate(captcha_text)
             # image.write(captcha_text, captcha_text '.jpg')  
            captcha_image=Image.open(captcha)
            # captcha_image.show()  
            captcha_image=np.array(captcha_image)
            # print(captcha_image.shape)  
            if captcha_image.shape==(60,160,3):
                break
        return captcha_text,captcha_image
    if __name__ == '__main__':
        text,image=gen_captcha_text_and_image()
        print(text)
        print(image.shape)
        gray=np.mean(image,-1)
        print(gray.shape)
        fig=plt.figure()
        ax=fig.add_subplot(111)
        ax.text(0.1,0.9,text,ha='center',va='center',transform=ax.transAxes)
        plt.imshow(image)
        # plt.show()  
        path='./image'        #存放二维码为的位置
        for i in range(500):    #生成二维码的数量
            text,image=gen_captcha_text_and_image()
            fullPath=os.path.join(path,text+".jpg")
            cv2.imwrite(fullPath,image)
            print(text + "{0}/10000".format(i))
    from captcha.image import ImageCaptcha
    import numpy as np
    from PIL import Image
    import random
    import time
    import os
    import cv2
    import matplotlib.pyplot as plt
    number = ['0','1','2','3','4','5','6','7','8','9']
    alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    ALPHABET = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

    # generate an random array of size 4  
    def random_captcha_text(char_set=number+alphabet+ALPHABET,captcha_size=4):
    captcha_text=[]
    for i in range(captcha_size):
    random.seed(time.time())
    random.shuffle(char_set)
    # print(char_set)
    c=random.choice(char_set)
    captcha_text.append(c)
    return captcha_text

    #  Randomly generate pictures of four numbers  
    def gen_captcha_text_and_image():
    while(1):
    image=ImageCaptcha()
    captcha_text=random_captcha_text()
    captcha_text="".join(captcha_text)
    captcha=image.generate(captcha_text)
    # image.write(captcha_text, captcha_text + '.jpg')  
    captcha_image=Image.open(captcha)
    # captcha_image.show()  
    captcha_image=np.array(captcha_image)
    # print(captcha_image.shape)  
    if captcha_image.shape==(60,160,3):
    break
    return captcha_text,captcha_image
    if __name__ == '__main__':
    text,image=gen_captcha_text_and_image()
    print(text)
    print(image.shape)
    gray=np.mean(image,-1)
    print(gray.shape)
    fig=plt.figure()
    ax=fig.add_subplot(111)
    ax.text(0.1,0.9,text,ha='center',va='center',transform=ax.transAxes)
    plt.imshow(image)
    # plt.show()  
    path='./image'
    for i in range(500):
    text,image=gen_captcha_text_and_image()
    fullPath=os.path.join(path,text+".jpg")
    cv2.imwrite(fullPath,image)
    print(text + "{0}/10000".format(i))
  • 相关阅读:
    Python异步任务模块之-celery
    Atom 编辑器侧边栏忽略隐藏文件
    判断字符串是否为回文 python
    python 命令行工具 fire
    Appium自动化测试-iOS
    视频转换工具ffmpeg
    nodejs顺序执行shell
    Jenkins 邮箱配置及问题解决
    mac配置php
    appium镜像设置
  • 原文地址:https://www.cnblogs.com/1gaoyu/p/12708175.html
Copyright © 2011-2022 走看看