PC版“扫一扫”程序 V0.1 (全网首发)

现在,二维码十分普遍,有些位置甚至要求你用手机扫描二维码。那么问题来了,如果你想要在扫描完二维码以后在电脑上打开网页,该怎么办呢?

于是,我用短短的几十行代码写出了这个“扫一扫”程序,以下截图足以证明软件为首发

 

 (必应搜索结果)

 

 (谷歌搜索结果)

 

 (百度搜索结果)

其他搜索引擎结果大体相同


那么介绍到此为止,我们贴代码

代码

 1 import numpy as np
 2 from PIL import Image
 3 from pyzbar import pyzbar
 4 import tkinter as tk
 5 import tkinter.ttk as ttk
 6 import tkinter.filedialog as filebox
 7 
 8 
 9 def readqr(imgpath):
10     # 读取文件,转成数组
11     im = np.array(Image.open(imgpath))
12     print(pyzbar.decode(im))
13     # 返回的信息还是很多的
14     """
15     [
16        Decoded(data=b'http://www.bilibili.com',
17            type='QRCODE',
18            rect=Rect(left=35, top=35, width=263, height=264),
19            polygon=[Point(x=35, y=35), Point(x=35, y=297), Point(x=297, y=299), Point(x=298, y=35)])
20     ]
21     """
22     # 拿到内容
23     data = pyzbar.decode(im)[0].data.decode("utf-8")  # http://www.bilibili.com
24     print(data)
25     return data
26 
27 
28 def openqr():
29     path = filebox.askopenfilename(title='打开图片')
30     print(path)
31     return path
32 
33 
34 def get_data():
35     qrdata = readqr(openqr())
36     data_text.configure(state='normal')
37     data_text.insert(tk.END, qrdata)
38     data_text.configure(state='disabled')
39 
40 
41 win = tk.Tk()
42 win.title('扫一扫PC版')
43 
44 ttk.Button(win, text='选择图片', command=get_data).pack(padx=5, pady=5, fill=tk.X)
45 data_part = ttk.LabelFrame(win, text='二维码数据')
46 
47 data_buttons = tk.Frame(win)
48 tk.Button(data_buttons, text='使用浏览器打开')
49 
50 data_part.pack(fill=tk.BOTH, padx=5, pady=5)
51 data_text = tk.Text(data_part)
52 data_text.configure(state='disabled')
53 data_text.pack(fill=tk.BOTH, padx=5, pady=5)
54 
55 win.mainloop()

关于下载

因为这个程序非常的短小精悍(简单),我就不把下载链接放在网上了,大家可以自己装环境复制代码使用。

posted @ 2021-06-29 15:03  真_人工智障  阅读(313)  评论(1编辑  收藏  举报