robotgo/examples/bitmap-bytes/main.go

35 lines
599 B
Go
Raw Permalink Normal View History

2019-03-16 13:33:40 +00:00
package main
import (
"bytes"
"log"
"image/jpeg"
"io/ioutil"
"github.com/go-vgo/robotgo"
"golang.org/x/image/bmp"
)
func main() {
bitMap := robotgo.CaptureScreen()
defer robotgo.FreeBitmap(bitMap)
bs := robotgo.ToBitmapBytes(bitMap)
img, err := bmp.Decode(bytes.NewReader(bs))
if err != nil {
2019-06-03 16:55:54 +00:00
log.Println("bmp.Decode err is: ", err)
2019-03-16 13:33:40 +00:00
return
}
b := new(bytes.Buffer)
err = jpeg.Encode(b, img, &jpeg.Options{Quality: 20})
2019-03-16 13:33:40 +00:00
if err != nil {
2019-06-03 16:55:54 +00:00
log.Println("jpeg.Encode err is: ", err)
2019-03-16 13:33:40 +00:00
return
}
log.Println("bytes: ", b.Bytes())
ioutil.WriteFile("out.jpg", b.Bytes(), 0666)
}