• 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()

    关于下载

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

  • 相关阅读:
    Spark Scala当中reduceByKey(_+_) reduceByKey((x,y) => x+y)的用法
    Spark和Scala当中的collect方法的用法和例子
    Win7 Eclipse 搭建spark java1.8(lambda)环境:WordCount helloworld例子
    System memory 259522560 must be at least 4.718592
    Win7 Eclipse 搭建spark java1.8环境:WordCount helloworld例子
    Win7 Eclipse 搭建spark java1.8编译环境,JavaRDD的helloworld例子
    indows Eclipse Scala编写WordCount程序
    Spark Scala当中reduceByKey的用法
    Spark Scala当中reduce的用法和例子
    Scala当中parallelize并行化的用法
  • 原文地址:https://www.cnblogs.com/TotoWang/p/scan_pc.html
Copyright © 2020-2023  润新知