• python生成二维码


    # -*- coding: utf-8 -*-
    # @Time    : 19-1-10 下午10:13
    # @Author  : Felix Wang
    
    import qrcode
    from PIL import Image
    
    
    def make_qrcode(data, qrimg_path, logo_path=None):
        """
        生成二维码
        :param data: 网址
        :param qrimg_path: 二维码存放路径
        :param logo_path: logo路径,logo必须是png格式图片
        :return:
        """
        qr = qrcode.QRCode(
            version=2,
            error_correction=qrcode.constants.ERROR_CORRECT_L,
            box_size=8,
            border=2
        )
        qr.add_data(data)  # 添加信息
        qr.make(fit=True)
        img = qr.make_image()
        img = img.convert('RGBA')
    
        if logo_path:
            # 添加logo时logo的格式为png,不然会报错
            icon = Image.open(logo_path)
            img_w, img_h = img.size
            factor = 5  # 比例,过小可能无法识别
            size_w = int(img_w / factor)
            size_h = int(img_h / factor)
    
            icon_w, icon_h = icon.size
    
            if icon_w > size_w:
                icon_w = size_w
            if icon_h > size_h:
                icon_h = size_h
            icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
    
            w = int((img_w - icon_w) / 2)
            h = int((img_h - icon_h) / 2)
            img.paste(icon, (w, h), icon)
    
        img.save(qrimg_path)
    
    
    if __name__ == '__main__':
        test = """
        将进酒⑴
        书法作品《将进酒》
        书法作品《将进酒》(13张)
        君不见,黄河之水天上来⑵,奔流到海不复回。
        君不见,高堂明镜悲白发,朝如青丝暮成雪⑶。
        人生得意须尽欢⑷,莫使金樽空对月。
        天生我材必有用,千金散尽还复来。
        烹羊宰牛且为乐,会须一饮三百杯⑸。
        岑夫子,丹丘生⑹,将进酒,杯莫停⑺。
        与君歌一曲⑻,请君为我倾耳听⑼。
        钟鼓馔玉不足贵⑽,但愿长醉不复醒⑾。
        古来圣贤皆寂寞,惟有饮者留其名。
        陈王昔时宴平乐,斗酒十千恣欢谑⑿。
        主人何为言少钱⒀,径须沽取对君酌⒁。
        五花马⒂,千金裘,呼儿将出换美酒,与尔同销万古愁⒃。 [1]
        """
    
        url = 'www.baidu.com'
    
        make_qrcode(url,'url_qrcode.png')
        make_qrcode(test, 'test_qrcode.png')
        make_qrcode(test,'test_with_logo_qrcode.png',logo_path='logo.png') # logo必须是png
  • 相关阅读:
    ChinaUnionPay、Visa和MasterCard信用卡号验证
    使用Aspose.Cells 过程中用过的知识(转)
    在网页中回车默认按钮
    求素数算法
    通过jQuery的attr修改onclick(转)
    子页面js代码改变父页面iframe的大小(转)
    考虑线程安全但效率不高的单例C++代码
    Linux信号量摧毁/销毁
    WCF、WPF、Silverlight和区别(转)
    不考虑线程安全的初级单例C++代码
  • 原文地址:https://www.cnblogs.com/felixwang2/p/9056978.html
Copyright © 2020-2023  润新知