screenshot

package module
v1.0.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2022 License: MIT Imports: 2 Imported by: 0

README

screenshot

Go Report Card

  • Go library to capture desktop screen.
  • Support Windows, Mac, Linux, FreeBSD, OpenBSD, NetBSD, and Solaris environment.
  • Multiple display supported.
  • cgo free for Windows, Linux, FreeBSD, OpenBSD, NetBSD, and Solaris.

example

  • sample program main.go

    package main
    
    import (
    	"github.com/fightforge/screenshot"
    	"image/png"
    	"os"
    	"fmt"
    )
    
    func main() {
    	n := screenshot.NumActiveDisplays()
    
    	for i := 0; i < n; i++ {
    		bounds := screenshot.GetDisplayBounds(i)
    
    		img, err := screenshot.CaptureRect(bounds)
    		if err != nil {
    			panic(err)
    		}
    		fileName := fmt.Sprintf("%d_%dx%d.png", i, bounds.Dx(), bounds.Dy())
    		file, _ := os.Create(fileName)
    		defer file.Close()
    		png.Encode(file, img)
    
    		fmt.Printf("#%d : %v \"%s\"\n", i, bounds, fileName)
    	}
    }
    
  • output example

    $ go run main.go
    #0 : (0,0)-(1280,800) "0_1280x800.png"
    #1 : (-293,-1440)-(2267,0) "1_2560x1440.png"
    #2 : (-1373,-1812)-(-293,108) "2_1080x1920.png"
    $ ls -1
    0_1280x800.png
    1_2560x1440.png
    2_1080x1920.png
    main.go
    

coordinate

Y-axis is downward direction in this library. The origin of coordinate is upper-left corner of main display. This means coordinate system is similar to Windows OS

license

MIT Licence

author

fightforge

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Capture

func Capture(x, y, width, height int) (*image.RGBA, error)

Capture returns screen capture of specified desktop region. x and y represent distance from the upper-left corner of main display. Y-axis is downward direction. This means coordinates system is similar to Windows OS.

func CaptureDisplay

func CaptureDisplay(displayIndex int) (*image.RGBA, error)

CaptureDisplay captures whole region of displayIndex'th display.

func CaptureDisplayX2 added in v1.0.12

func CaptureDisplayX2(displayIndex int) (*image.RGBA, error)

CaptureDisplay captures whole region of displayIndex'th display.

func CaptureRect

func CaptureRect(rect image.Rectangle) (*image.RGBA, error)

CaptureRect captures specified region of desktop.

func CaptureRectX2 added in v1.0.12

func CaptureRectX2(rect image.Rectangle) (*image.RGBA, error)

CaptureRect captures specified region of desktop.

func GetDisplayBounds

func GetDisplayBounds(displayIndex int) image.Rectangle

GetDisplayBounds returns the bounds of displayIndex'th display. The main display is displayIndex = 0.

func NumActiveDisplays

func NumActiveDisplays() int

NumActiveDisplays returns the number of active displays.

Types

This section is empty.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL