赞
踩
使用到的库
介绍:qrcode模块是Github上的一个开源项目,提供了生成二维码的接口。qrcode模块默认使用PIL库用于生成图像。
安装:
pip install qrcode
使用到的函数:qrcode.QRCode(),该函数用于生成二维码,传入的参数为生成二维码的内容以及样式控制
介绍:pyzbar是python的一个第三方库,其作用包括条形码生成和扫描器。
安装:
pip install pyzbar
使用到的函数:pyzbar.decode(),该函数用于解析二维码存储的信息
介绍:PIL,全称Python Image Library,主要作用是图像处理,可用于图片剪切、粘贴、缩放、镜像、水印、颜色块、滤镜、图像格式转换、色场空间转换、验证码、旋转图像、图像增强、直方图处理、插值和滤波等功能
安装:
pip install Pillow
# -*- coding:utf-8 -*- import os import qrcode from PIL import Image from pyzbar import pyzbar def make_qr_code_with_icon(content, icon_path, save_path=None): if not os.path.exists(icon_path): raise FileExistsError(icon_path) # First, generate an usual QR Code image qr_code_maker = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=8, border=4, ) qr_code_maker.add_data(data=content) qr_code_maker.make(fit=True) qr_code_img = qr_code_maker.make_image( fill_color="black", back_color="white").convert('RGBA') # Second, load icon image and resize it icon_img = Image.open(icon_path) code_width, code_height = qr_code_img.size icon_img = icon_img.resize( (code_width // 4, code_height // 4), Image.ANTIALIAS) # Last, add the icon to original QR Code qr_code_img.paste(icon_img, (code_width * 3 // 8, code_width * 3 // 8)) if save_path: qr_code_img.save(save_path) # 保存二维码图片 qr_code_img.show() # 显示二维码图片 else: print("保存错误!") def decode_qr_code(code_img_path): if not os.path.exists(code_img_path): raise FileExistsError(code_img_path) # Here, set only recognize QR Code and ignore other type of code return pyzbar.decode(Image.open(code_img_path), symbols=[pyzbar.ZBarSymbol.QRCODE]) if __name__ == "__main__": print("1、请输入编码信息(可以为文字、链接、图片地址):") code_Data = input('>>:').strip() print("正在编码:") # ==生成带中心图片的二维码 make_qr_code_with_icon(code_Data, "QRcodeCenter.jpg", "qrcode.png") # 内容,center图片,生成二维码图片 print("图片已保存,名称为:qrcode.png") results = decode_qr_code("qrcode.png") print("2、正在解码:") if len(results): print("解码结果是:") res = results[0].data.decode("utf-8") print(res) with open(r"./info.txt", "a+", encoding='utf-8')as f: f.seek(0) f.truncate() f.write(res) else: print("无法识别.")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。