附上源码 windows和mac可用二维码处理(练手,轻喷,轻喷)

windows、mac

二维码 生成 识别

附上源码 windows和mac可用二维码处理(练手,轻喷,轻喷)

mac

:https://pan.baidu.com/s/10dXutco3wQsqhhjF1ajucA

windows

:https://pan.baidu.com/s/1SzzPYNtaYMA77FemnS8UsQ

源码

丑陋

,大家指教指教

package main

import (
        "github.com/andlabs/ui"
        _ "github.com/andlabs/ui/winmanifest"
        "github.com/skip2/go-qrcode"
        "github.com/tanlio/tltool"
        "math/rand"
        "os"
        "strconv"
        "time"
)

func main() {
        err := ui.Main(func() {
                //创建输入框
                pathFile := ui.NewEntry()
                //创建按钮
                button := ui.NewButton("选择二维码")
                button2 := ui.NewButton("识别二维码")
                button3 := ui.NewButton("生成二维码")

                //创建输入框
                greeting := ui.NewEntry()

                //纵向排列
                div := ui.NewVerticalBox()

                //水平排列
                box2 := ui.NewHorizontalBox()
                box2.Append(button, true)
                box2.Append(button2, true)
                box2.Append(button3, true)
                box2.SetPadded(true)

                //水平排列
                box3 := ui.NewHorizontalBox()
                box3.Append(greeting, true)
                box3.SetPadded(true)

                //全部进行竖向排列
                div.Append(pathFile, true)
                div.Append(box2, false)
                div.Append(box3, true)

                //格式排列
                div.SetPadded(true)

                //创建window窗口。并设置长宽。
                window := ui.NewWindow("识别二维码应用程序", 300, 400, true)
                //mac不支持居中。

                window.SetChild(div)
                //是否留出边距
                window.SetMargined(true)

                //按钮点击操作
                button.OnClicked(func(*ui.Button) {
                        mainWin := ui.NewWindow("libui Control Gallery", 640, 480, true)
                        codePath := ui.OpenFile(mainWin)
                        pathFile.SetText(codePath)
                })
                button2.OnClicked(func(*ui.Button) {
                        //可以直接打印日志。
                        path := pathFile.Text()
                        if len(path) == 0 {
                                greeting.SetText("识别失败,请选择二维码..")
                        }
                        fi, err := os.Open(path)
                        if err != nil {
                                greeting.SetText("识别失败,没有找到图片..")
                                return
                        }
                        defer fi.Close()
                        qrCodeStr, err := tltool.QRCodeParse(fi)
                        if err != nil {
                                greeting.SetText("识别失败,换一张试试..")
                                return
                        }
                        greeting.SetText(qrCodeStr)
                })

                button3.OnClicked(func(*ui.Button) {
                        content := pathFile.Text()
                        if len(content) == 0 {
                                greeting.SetText("生成失败,请输入信息..")
                                return
                        }
                        fileName := "qr" + strconv.Itoa(int(time.Now().Unix())) + strconv.Itoa(rand.Intn(1000)) + ".png"
                        err := qrcode.WriteFile(content, qrcode.Medium, 256, fileName)
                        if err != nil {
                                greeting.SetText("生成失败,请重试..")
                                return
                        }

                        msg := "生成成功,文件地址:
./" + fileName
                        greeting.SetText(msg)
                })
                window.OnClosing(func(*ui.Window) bool {
                        ui.Quit()
                        return true
                })
                window.Show()
        })
        if err != nil {
                panic(err)
        }
}

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共13条

请登录后发表评论