亲宝软件园·资讯

展开

python用MyQR和qrcode来制作二维码 python 使用MyQR和qrcode来制作二维码

叶庭云 人气:0
想了解python 使用MyQR和qrcode来制作二维码的相关内容吗,叶庭云在本文为您仔细讲解python用MyQR和qrcode来制作二维码的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,制作二维码,python,MyQR,python,qrcode,下面大家一起来学习吧。

一、前言

常见的二维码为 QR Code,QR全称是Quick Response,是一个近几年来移动设备上超流行的一种编码方式。它的结构如下:

QR Code属于矩阵式二维条码,又称棋盘式二维条码。它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。
主要有以下特点:

二、MyQR

MyQR可以生成常见的二维码、艺术二维码(黑白或彩色),动态二维码(黑白或彩色),安装命令如下:

pip install MyQR -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

更多详细内容可以参考官方文档:https://github.com/sylnsfar/qrcode

from MyQR import myqr
import os
version, level, qr_name = myqr.run(
	'https://yetingyun.blog.csdn.net/',
    version=1,
    level='H',
    picture=None,
    colorized=False,
    contrast=1.0,
    brightness=1.0,
    save_name='test01.png',
    save_dir=os.getcwd()
)
print(version, level, qr_name)

运行结果如下:
4
H
D:\python\pycharm2020\program\archievement\用Python制作二维码\test01.png

程序运行会在当前目录下生成一个名称为 test01.png 的二维码。如果 myqr 后面传入的是普通字符串,那么扫描后会现在字符串。若是一个网址,扫描后会自动跳转。

需要注意的是:这里的字符串不能指定中文,myqr不支持中文,有中文需要得用 QRCode 库,否则会抛出 ValueError(‘Wrong words! Make sure the characters are supported!') 的异常。

# -*- coding: UTF-8 -*-
"""
@File    :demo.py
@Author  :叶庭云
@CSDN    :https://yetingyun.blog.csdn.net/
"""
from MyQR import myqr
import os

version, level, qr_name = myqr.run(
	'https://yetingyun.blog.csdn.net/',  # 二维码的内容
    version=10,   # 1−40,控制二维码的大小,默认是1 11,即21 × 21 21\times2121×21
    level='H',
    picture='test_004.gif', # 图片的文件名,默认为空,即生成的二维码是普通的二维码
    colorized=True,   # 默认是False,即生成的二维码是黑白的
    contrast=1.0,     # 对比度,默认是1.0 1.01.0
    brightness=1.0,   # 亮度,默认是1.0 1.01.0
    save_name='test04.gif',  # 输出的文件名,比如test.png
    save_dir=os.getcwd()     # 输出的文件路径,默认为当前路径
)
print(version, level, qr_name)

三、qrcode

qrcode的功能虽稍逊于MyQR,但是它支持中文字符,且能生成矢量图,安装命令如下:

pip install qrcode -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

官方文档 Github 网址:https://github.com/lincolnloop/python-qrcode

制作一个简单二维码

import qrcode

img = qrcode.make('欲买桂花同载酒,终不似,少年游。')
img.save('002.png')
img.show()

制作一个带logo,自定义颜色的二维码

# -*- coding: UTF-8 -*-
"""
@File    :demo4.py
@Author  :叶庭云
@CSDN    :https://yetingyun.blog.csdn.net/
"""
import qrcode
from PIL import Image
import matplotlib.pyplot as plt


def getQRcode(data, file_name):
    qr = qrcode.QRCode(
        version=2,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=5,
        border=4,
    )
    # 添加数据
    qr.add_data(data)
    # 填充数据
    qr.make(fit=True)
    # 生成图片  设置填充色  背景色
    img = qr.make_image(fill_color="purple", back_color="white")
    # 添加logo,打开logo照片
    icon = Image.open("logo1.png")
    # 获取图片的宽高
    img_w, img_h = img.size
    # 参数设置logo的大小
    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
    # 重新设置logo的尺寸
    icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
    # 得到画图的x,y坐标,居中显示
    w = int((img_w - icon_w) / 2)
    h = int((img_h - icon_h) / 2)
    # 黏贴logo照
    img.paste(icon, (w, h), mask=None)
    # 保存img
    img.save(file_name)
    # 终端显示图片
    plt.imshow(img)
    plt.axis('off')
    plt.show()

    return img


if __name__ == '__main__':
    words = '''
    其实努力也没那么辛苦
    想着以后的日子可以过得那样平静和有力量
    可以一步步靠近喜欢的人
    可以轻松拥有自己喜欢的东西
    就能在疲惫的生活中找到甜
    '''
    getQRcode(words, 'my.png')

注:文中生成的二维码均绿色、健康,仅用作学习之用,可以放心扫。

加载全部内容

相关教程
猜你喜欢
用户评论