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
}