Watch
1
0
Fork
You've already forked golang-github-kbinani-screenshot
0
No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-08 17:45:02 +02:00
.github/workflows Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
debian Releasing fastforward version 0.0~git20250624.089614a-7~ffwd13+u1. 2026-07-08 17:45:02 +02:00
example Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
darwin.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
go.mod Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
go.sum Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
LICENSE Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
nix.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
nix_dbus_available.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
nix_dbus_unavailable.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
nix_wayland.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
nix_xwindow.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
README.md Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
screenshot.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
screenshot_test.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
unsupported.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
windows.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
windows_ge1.21.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00
windows_lt1.21.go Adding upstream version 0.0~git20250624.089614a. 2026-07-08 17:43:19 +02:00

screenshot

Go Report Card

  • Go library to capture desktop screen.
  • Multiple display supported.
  • Supported GOOS: windows, darwin, linux, freebsd, openbsd, and netbsd.
  • cgo free except for GOOS=darwin.

example

  • sample program main.go

    package main
    
    import (
    	"github.com/kbinani/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

kbinani