This action will force synchronization from 小柒2012商城/从零学Python, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
# -*- coding:utf-8 -*-import osimport qrcodeimport timefrom PIL import Imagefrom pyzbar import pyzbar"""pip install -U pippip install Pillowpip install pyzbarpip install qrcode"""def make_qr_code_easy(content, save_path=None):"""Generate QR Code by default:param content: The content encoded in QR Codeparams:param save_path: The path where the generated QR Code image will be saved in.If the path is not given the image will be opened by default."""img = qrcode.make(data=content)if save_path:img.save(save_path)else:img.show()def make_qr_code(content, save_path=None):"""Generate QR Code by given params:param content: The content encoded in QR Code:param save_path: The path where the generated QR Code image will be saved in.If the path is not given the image will be opened by default."""qr_code_maker = qrcode.QRCode(version=2,error_correction=qrcode.constants.ERROR_CORRECT_M,box_size=8,border=1,)qr_code_maker.add_data(data=content)qr_code_maker.make(fit=True)img = qr_code_maker.make_image(fill_color="black", back_color="white")if save_path:img.save(save_path)else:img.show()def make_qr_code_with_icon(content, icon_path, save_path=None):"""Generate QR Code with an icon in the center:param content: The content encoded in QR Code:param icon_path: The path of icon image:param save_path: The path where the generated QR Code image will be saved in.If the path is not given the image will be opened by default.:exception FileExistsError: If the given icon_path is not exist.This error will be raised.:return:"""if not os.path.exists(icon_path):raise FileExistsError(icon_path)# First, generate an usual QR Code imageqr_code_maker = qrcode.QRCode(version=4,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=8,border=1,)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 iticon_img = Image.open(icon_path)code_width, code_height = qr_code_img.sizeicon_img = icon_img.resize((code_width // 4, code_height // 4), Image.ANTIALIAS)# Last, add the icon to original QR Codeqr_code_img.paste(icon_img, (code_width * 3 // 8, code_width * 3 // 8))if save_path:qr_code_img.save(save_path)else:qr_code_img.show()def decode_qr_code(code_img_path):"""Decode the given QR Code image, and return the content:param code_img_path: The path of QR Code image.:exception FileExistsError: If the given code_img_path is not exist.This error will be raised.:return: The list of decoded objects"""if not os.path.exists(code_img_path):raise FileExistsError(code_img_path)# Here, set only recognize QR Code and ignore other type of codereturn pyzbar.decode(Image.open(code_img_path), symbols=[pyzbar.ZBarSymbol.QRCODE], scan_locations=True)if __name__ == "__main__":# # 简易版# make_qr_code_easy("make_qr_code_easy", "make_qr_code_easy.png")# results = decode_qr_code("make_qr_code_easy.png")# if len(results):# print(results[0].data.decode("utf-8"))# else:# print("Can not recognize.")## # 参数版# make_qr_code("make_qr_code", "make_qr_code.png")# results = decode_qr_code("make_qr_code.png")# if len(results):# print(results[0].data.decode("utf-8"))# else:# print("Can not recognize.")## 带中间 logo 的# make_qr_code_with_icon("https://blog.52itstyle.vip", "icon.jpg", "make_qr_code_with_icon.png")# results = decode_qr_code("make_qr_code_with_icon.png")# if len(results):# print(results[0].data.decode("utf-8"))# else:# print("Can not recognize.")# 识别答题卡二维码 16 识别失败t1 = time.time()count = 0for i in range(1, 33):results = decode_qr_code(os.getcwd()+"\\img\\"+str(i)+".png")if len(results):print(results[0].data.decode("utf-8"))else:print("Can not recognize.")count += 1t2 = time.time()print("识别失败数量:" + str(count))print("测试时间:" + str(int(round(t2 * 1000))-int(round(t1 * 1000))))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。