暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

自己动手生成二维码

生有可恋 2024-01-26
248

二维QR CodeQuick Response Code)最早由日本公司Denso Wave 于1994年发明。Denso Wave 是丰田汽车公司的子公司,他们的目标是开发一种可以迅速扫描并在小空间内存储大量信息的编码系统。

1999年,Denso Wave 将 QR 码标准发布为开放标准。QR 码采用矩阵式的二维码结构,可以在相对较小的区域内存储更多的信息。QR 码最初主要用于跟踪零部件在汽车制造中的流动,随后很快扩展到其他领域。

因为二维码的成功应用,国际标准化组织(ISO)于 2015 年发布了ISO/IEC 18004 标准,该标准规范了 QR 码的数据结构和编码规则。

通过扫码工具可以将二维码识别为字符串、链接、数字。反之通过工具也可以将字符串转为二维码。

在 Linux 终端可以使用 qrencode 工具生成二维码:

    $ sudo apt-get install qrencode
    $ echo "http://weixin.qq.com/r/pRHh_THEDWxyrXWa90S3" | \
     qrencode -o - -t ANSI

    以上命令将本公众号的链接转为终端下的二维码:

    使用微信扫码可以验证二维码生成的是否正确。

    使用 Python 的第三方库也可生成二维码,使用前安装 qrcode 和 pillow 库。安装命令为:

      $ pip install qrcode[pil]

      调用的 demo 为:

        import qrcode


        # 要生成二维码的数据
        data = "http://weixin.qq.com/r/pRHh_THEDWxyrXWa90S3"


        # 创建QRCode对象
        qr = qrcode.QRCode(
        version=1, # 控制二维码的尺寸大小(取值1到40)
        error_correction=qrcode.constants.ERROR_CORRECT_L, # 控制二维码的容错级别
        box_size=10, # 控制二维码中每个小格子的像素数
        border=4, # 控制二维码四周留白的格子数
        )


        # 添加数据到QRCode对象
        qr.add_data(data)
        qr.make(fit=True)


        # 创建Image对象
        img = qr.make_image(fill_color="black", back_color="white")


        # 保存二维码图片
        # img.save("my_qrcode.png")
        img.show()


        最终生成的二维码像素为370x370 :

        这个 demo 代码相对比较多,还有更少的,一行代码就可以生成二维码:

          import qrcode_terminal


          # 要生成二维码的数据
          data = "http://weixin.qq.com/r/pRHh_THEDWxyrXWa90S3"


          # 生成并显示二维码
          qrcode_terminal.draw(data)

          使用前使用 pip 安装 qrcode_terminal 库,代码执行后会在默认图片查看软件中显示二维码。

          全文完。

          如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

          文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论