当前位置: 首页 > 工具软件 > python-qrcode > 使用案例 >

python使用qrcode生成二维码

郑翰海
2023-12-01
  1. 生成二维码
    qr = qrcode.QRCode(version=2,error_correction=qrcode.constants.ERROR_CORRECT_H ,box_size=10, border=4)
    # add_data方法将数据添加到二维码中
    qr.add_data('Hello, world!')
    #使用make方法生成二维码。
    qr.make(fit=True)
    
    • version参数指定QR码的版本。
    • error_correction指定二维码校验级别
      • ERROR_CORRECT_L:大约7%或者更少的错误会被更正。
      • ERROR_CORRECT_M:默认值,大约15%或者更少的错误会被更正。
      • ERROR_CORRECT_Q:大约25%或者更少的错误会被更正。
      • ERROR_CORRECT_H:大约30%或者更少的错误会被更正。
    • box_size参数指定每个模块的像素大小
    • border参数指定二维码周围的边框宽度。
  2. 将二维码渲染为图像
    # make_image方法将二维码渲染为图像
    img = qr.make_image(fill_color="red", back_color="white")
    #将二维码保存为PNG文件
    img.save('demo.png')
    
    • fill_color参数指定二维码的颜色
    • back_color参数指定背景颜色
  3. 自由调整边框像素值、二维码颜色等内容,设置二维码内容为
    https://github.com/
    # 创建一个QRCode对象
    qr = qrcode.QRCode(version=1, box_size=10, border=4)
    # 设置数据
    data = "https://github.com/"
    qr.add_data(data)
    # 编译并生成二维码图像
    qr.make(fit=True)
    img = qr.make_image(fill_color="red", back_color="white")
    # 修改边框像素值
    border_pixels = 15
    img_with_border = img.crop(
    (0, 0, img.size[0], img.size[1])).resize(
    # border_pixels 是一个代表边框像素数的变量。
    (img.size[0] + border_pixels * 4,
     img.size[1] + border_pixels * 6)
    ).convert('RGB')
    # 修改二维码颜色
    # 转换为 RGBA 模式。
    img_with_border = img_with_border.convert("RGBA")
    data = img_with_border.getdata()
    new_data = []
    for item in data:
    	#判断该像素点的颜色是否为黑色。如果是黑色,就将其修改为蓝色。
    	#这里的RGB值(0, 0, 255)表示蓝色。在将黑色修改为蓝色时,
    	#还保留了原有的透明度值。
    	if item[0] == 0 and item[1] == 0 and item[2] == 0:
        	# 将黑色修改为蓝色
    		# item代表一个像素点的颜色值,
    		#是一个四元组(R, G, B, A),其中A代表该像素点的透明度值。
        	# 分别是红色(R)、绿色(G)、蓝色(B)和透明度(A)。
        	#因此,item[3]表示获取该像素点颜色值的第4个分量,
        	#即透明度(A)的值。
        	new_data.append((0, 0, 255, item[3]))
    	else:
        	new_data.append(item)
    #调用putdata()方法,将修改后的像素序列应用到二维码图像中
    img_with_border.putdata(new_data)
    # 保存二维码图像
    img_with_border.save("demo2.png")
    
    • crop() 方法接受一个元组作为参数,包含四个整数值,分别表示左上角和右下角的坐标,即 (left, upper, right, lower)。
    • size 属性,它是一个包含两个元素的元组,第一个元素表示图像的宽度,第二个元素表示图像的高度 。
    • resize() 方法也接受一个元组作为参数,包含两个整数值,分别表示缩放后的宽度和高度。
 类似资料: