go 电脑屏幕截图,二维码识别 示例

1,需要的第三方包

go get github.com/kbinani/screenshot
go get github.com/makiuchi-d/gozxing

2. 函数封装

import (
	"fmt"
	"github.com/kbinani/screenshot"
	"github.com/makiuchi-d/gozxing"
	"github.com/makiuchi-d/gozxing/qrcode"
	"image/png"
	"os"
)

func ScreenAndQrCode() []string {
	n := screenshot.NumActiveDisplays()  // 获取屏幕数量
	imgPathList := make([]string, 0)

	if n > 0 {
		for i := 0; i < n; i++ {
			// 截图
			img, err := screenshot.CaptureDisplay(i)
			if err != nil {
				panic(err)
			}
			fileName := fmt.Sprintf("第%d屏幕截图.png", i)
			file, err := os.Create(fileName)
			if err != nil {
				panic(err)
			}

			png.Encode(file, img)

			// 识别二维码
			bmp, _ := gozxing.NewBinaryBitmapFromImage(img)
			qrReader := qrcode.NewQRCodeReader()
			result, err := qrReader.Decode(bmp, nil)
			defer os.Remove(fileName)
			defer file.Close()
			if err != nil {
				continue
			}
			imgPathList = append(imgPathList, result.GetText())
			//if errs != nil {
			//	fmt.Println(errs)
			//}
		}

	}

	return imgPathList
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值