// Copyright 2016 The go-vgo Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // https://github.com/go-vgo/robotgo/blob/master/LICENSE // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. package main import ( "fmt" "log" "github.com/go-vgo/robotgo" "github.com/vcaesar/imgo" // "go-vgo/robotgo" ) func bitmap() { //////////////////////////////////////////////////////////////////////////////// // Bitmap //////////////////////////////////////////////////////////////////////////////// // gets all of the screen abitMap := robotgo.CaptureScreen() fmt.Println("abitMap...", abitMap) // gets part of the screen bitmap := robotgo.CaptureScreen(100, 200, 30, 40) fmt.Println("CaptureScreen...", bitmap) gbit := robotgo.ToBitmap(bitmap) fmt.Println("go bitmap", gbit, gbit.Width) cbit := robotgo.ToCBitmap(gbit) log.Println("cbit == bitmap: ", cbit == bitmap) robotgo.SaveBitmap(cbit, "tocbitmap.png") // find the color in bitmap color := robotgo.GetColor(bitmap, 1, 2) fmt.Println("color...", color) cx, cy := robotgo.FindColor(bitmap, robotgo.CHex(color), 1.0) fmt.Println("pos...", cx, cy) cx, cy = robotgo.FindColor(bitmap, 0xAADCDC) fmt.Println("pos...", cx, cy) cx, cy = robotgo.FindColorCS(388, 179, 300, 300, 0xAADCDC) fmt.Println("pos...", cx, cy) cnt := robotgo.CountColor(bitmap, 0xAADCDC) fmt.Println("count...", cnt) cnt1 := robotgo.CountColorCS(10, 20, 30, 40, 0xAADCDC) fmt.Println("count...", cnt1) count := robotgo.CountBitmap(abitMap, bitmap) fmt.Println("count...", count) bit := robotgo.CaptureScreen(1, 2, 40, 40) fmt.Println("CaptureScreen...", bit) // searches for needle in bitmap fx, fy := robotgo.FindBitmap(bit, bitmap) fmt.Println("FindBitmap------", fx, fy) // fx, fy := robotgo.FindBit(bitmap) // fmt.Println("FindBitmap------", fx, fy) fx, fy = robotgo.FindBitmap(bit) fmt.Println("FindBitmap------", fx, fy) // bitmap := robotgo.CaptureScreen(10, 20, 30, 40) abool := robotgo.PointInBounds(bitmap, 1, 2) fmt.Println("point in bounds...", abool) // returns new bitmap object created from a portion of another bitpos := robotgo.GetPortion(bitmap, 10, 10, 11, 10) fmt.Println(bitpos) // creates bitmap from string by bitmap bitstr := robotgo.TostringBitmap(bitmap) fmt.Println("bitstr...", bitstr) // sbitmap := robotgo.BitmapFromstring(bitstr, 2) // fmt.Println("...", sbitmap) // saves image to absolute filepath in the given format robotgo.SaveBitmap(bitmap, "test.png") robotgo.SaveBitmap(bitmap, "test31.tif", 1) img, name, err := robotgo.DecodeImg("test.png") if err != nil { log.Println("decode image ", err) } fmt.Println("decode test.png", img, name) byt := robotgo.OpenImg("test.png") imgo.Save("test2.png", byt) w, h := robotgo.GetImgSize("test.png") fmt.Println("image width and hight ", w, h) w, h = imgo.GetSize("test.png") fmt.Println("image width and hight ", w, h) // convert image robotgo.Convert("test.png", "test.tif") // open image bitmap openbit := robotgo.OpenBitmap("test.tif") fmt.Println("openBitmap...", openbit) fx, fy = robotgo.FindBitmap(openbit) fmt.Println("FindBitmap------", fx, fy) fx, fy = robotgo.FindPic("test.tif") fmt.Println("FindPic------", fx, fy) // free the bitmap robotgo.FreeBitmap(abitMap) } func main() { bitmap() }