admin管理员组

文章数量:1558697

1,需要的第三方包

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

2. 函数封装

import (
	"fmt"
	"github/kbinani/screenshot"
	"github/makiuchi-d/gozxing"
	"github/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
}

本文标签: 示例截图电脑屏幕二维码