zoukankan      html  css  js  c++  java
  • 涛哥的Python脚本工具箱之生成带Logo的二维码

    近期须要在二维码上加Logo,网上没有找到好用的,于是自己用python写了一个。

    须要安装qrcode,PIL库

    二维码简称 QR Code(Quick Response Code),学名为高速响应矩阵码,是二维条码的一种。由日本的 Denso Wave 公司于 1994 年发明。

    现随着智能手机的普及。已广泛应用于寻常生活中,比如商品信息查询、社交好友互动、网络地址訪问等等。

    安装 Python 的二维码库 -- qrcode

    pip install qrcode

    因为生成 qrcode 图片须要依赖 Python 的图像库,所以须要先安装 Python 图像库 PIL(Python Imaging Library),不然会遇到 "ImportError: No module named Image" 的错误。

    代码例如以下:


    #!/usr/bin/python
    # -*- encoding: UTF-8 -*-
    # test created on 14-10-28 下午12:48
    # Copyright 2014 offbye@gmail.com
    
    
    """
    生成带logo的二维码
    """
    
    __author__ = ['"Xitao":<offbye@gmail.com>']
    
    import qrcode
    from PIL import Image
    import os
    
    
    def gen_qrcode(string, path, logo=""):
        """
        生成中间带logo的二维码
        须要安装qrcode, PIL库
    
        :param string: 二维码字符串
        :param path: 生成的二维码保存路径
        :param logo: logo文件路径
        :return:
        """
        qr = qrcode.QRCode(
            version=2,
            error_correction=qrcode.constants.ERROR_CORRECT_H,
            box_size=8,
            border=1
        )
        qr.add_data(string)
        qr.make(fit=True)
    
        img = qr.make_image()
        img = img.convert("RGBA")
    
        if logo and os.path.exists(logo):
            icon = Image.open(logo)
            img_w, img_h = img.size
            factor = 4
            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)
            icon = icon.convert("RGBA")
            img.paste(icon, (w, h), icon)
        img.save(path)
    
    if __name__ == "__main__":
    <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">    gen_qrcode("http://offbye.com","qr.png", "logo.png")</span>



  • 相关阅读:
    jeecg中移动tbody中的tr可实现位置交换
    SQL Server中的Datediff移植到Oracle计算有误解决方案
    Oracle如何插入日期数据
    在 Oracle 9i 中创建 方案
    手把手教你uniapp 打包的H5怎么实现谷歌登录
    网站和项目的区别
    基础知识
    全球唯一标识GUID
    MVC3 Razor视图引擎基础语法
    缓存技术
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6795450.html
Copyright © 2011-2022 走看看