最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言實(shí)現(xiàn)屏幕截圖的示例代碼

 更新時(shí)間:2022年04月22日 11:42:30   作者:Clown95  
屏幕截圖在很多地方都可以 用到,本文主要介紹了go語言實(shí)現(xiàn)屏幕截圖的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

借助第三方庫

https://github.com/kbinani/screenshot

安裝

go get github.com/kbinani/screenshot

方法

詳情查看
https://pkg.go.dev/github.com/vova616/screenshot

自定義截圖 Capture

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

返回指定桌面區(qū)域的屏幕截圖。x,y是起點(diǎn)坐標(biāo), width,height 是圖片的寬和高。

全屏截圖 CaptureDisplay

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

返回全屏截圖。 displayIndex 是顯示編號,默認(rèn)屏幕是0,如果外接多個(gè)顯示,則是1,2,3,4 … 。

獲取活動(dòng)顯示器數(shù)量 NumActiveDisplays

func NumActiveDisplays()int

返回活動(dòng)的顯示器的數(shù)量。

獲取指定屏幕顯示范圍 GetDisplayBounds

func GetDisplayBounds(displayIndex int) image.Rectangle

GetDisplayBounds返回displayIndex的顯示范圍, 范圍從(0,0) 坐標(biāo)開始,當(dāng)前屏幕分辨率結(jié)束 ,例如:(0,0)-(1920,1080)。

獲取自定義矩形區(qū)域的截圖 CaptureRect

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

捕獲桌面的指定區(qū)域。跟Capture類似,主要搭配GetDisplayBounds 使用。
參數(shù)是一個(gè)矩形,即兩個(gè)點(diǎn),一個(gè)最小點(diǎn),一個(gè)最大點(diǎn)

演示

package main

import (
?? ?"fmt"
?? ?"github.com/kbinani/screenshot"
?? ?"image"
?? ?"image/png"
?? ?"os"
)

// save *image.RGBA to filePath with PNG format.
func save(img *image.RGBA, filePath string) {
?? ?file, err := os.Create(filePath)
?? ?if err != nil {
?? ??? ?panic(err)
?? ?}
?? ?defer file.Close()
?? ?png.Encode(file, img)
}
func main() {

?? ?//自定義截圖
?? ?img, err := screenshot.Capture(0, 0, 500, 500)
?? ?if err != nil {
?? ??? ?panic(err)
?? ?}
?? ?save(img, "自定義.png")

?? ?//獲取所有活動(dòng)屏幕
?? ?n := screenshot.NumActiveDisplays()
?? ?if n <= 0 {
?? ??? ?panic("沒有發(fā)現(xiàn)活動(dòng)的顯示器")
?? ?}

?? ?//全屏截取所有活動(dòng)屏幕
?? ?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)
?? ??? ??? ?save(img, fileName)
?? ??? ?}
?? ?}

?? ?//使用 Rectangle 自定義截圖
?? ?// 獲取第一個(gè)屏幕顯示范圍
?? ?var new image.Rectangle = image.Rect(0, 0, 600, 700)
?? ?img, err = screenshot.CaptureRect(new)
?? ?if err != nil {
?? ??? ?panic(err)
?? ?}
?? ?save(img, "new.png")

?? ?//使用 GetDisplayBounds獲取指定屏幕顯示范圍,全屏截圖
?? ?bounds := screenshot.GetDisplayBounds(0)
?? ?img, err = screenshot.CaptureRect(bounds)
?? ?if err != nil {
?? ??? ?panic(err)
?? ?}
?? ?save(img, "all.png")

?? ?//使用Union獲取指定屏幕 矩形最小點(diǎn)和最大點(diǎn)
?? ?var all image.Rectangle = image.Rect(0, 0, 0, 0)
?? ?bounds1 := screenshot.GetDisplayBounds(0)
?? ?all = bounds1.Union(all)
?? ?fmt.Println(all.Min.X, all.Min.Y, all.Dx(), all.Dy())

}

到此這篇關(guān)于go語言實(shí)現(xiàn)屏幕截圖的示例代碼的文章就介紹到這了,更多相關(guān)go語言屏幕截圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang中大端序和小端序的處理

    Golang中大端序和小端序的處理

    大端序和小端序是描述多字節(jié)數(shù)據(jù)在內(nèi)存中存儲順序的術(shù)語,本文主要介紹了Golang中大端序和小端序的處理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • Go語言的type?func()用法詳解

    Go語言的type?func()用法詳解

    在Go語言中,函數(shù)的基本組成為:關(guān)鍵字func、函數(shù)名、參數(shù)列表、返回值、函數(shù)體和返回語句,這篇文章主要介紹了Go語言的type?func()用法,需要的朋友可以參考下
    2022-03-03
  • 使用Go語言自制簡單易用的Web框架

    使用Go語言自制簡單易用的Web框架

    這篇文章主要為大家詳細(xì)介紹了如何使用Go語言實(shí)現(xiàn)自制簡單易用的Web框架,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Go中的交叉編譯問題

    Go中的交叉編譯問題

    這篇文章主要介紹了Go中的交叉編譯問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • golang生成指定位數(shù)的隨機(jī)數(shù)的方法

    golang生成指定位數(shù)的隨機(jī)數(shù)的方法

    這篇文章主要介紹了golang生成指定位數(shù)的隨機(jī)數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • golang代碼檢測工具之goimports解讀

    golang代碼檢測工具之goimports解讀

    這篇文章主要介紹了golang代碼檢測工具之goimports使用,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • golang中json和struct的使用說明

    golang中json和struct的使用說明

    這篇文章主要介紹了golang中json和struct的使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go泛型應(yīng)用工廠方法及泛型使用

    Go泛型應(yīng)用工廠方法及泛型使用

    這篇文章主要介紹了Go泛型應(yīng)用工廠方法及泛型使用,結(jié)合工廠方法+泛型方法來看一下泛型到底是如何在業(yè)務(wù)場景中使用的,需要的小伙伴可以參考一下
    2022-07-07
  • 一文帶你了解Golang中的WaitGroups

    一文帶你了解Golang中的WaitGroups

    WaitGroups是同步你的goroutines的一種有效方式。這篇文章主要來和大家聊聊Golang中WaitGroups的使用,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • GO?CountMinSketch計(jì)數(shù)器(布隆過濾器思想的近似計(jì)數(shù)器)

    GO?CountMinSketch計(jì)數(shù)器(布隆過濾器思想的近似計(jì)數(shù)器)

    這篇文章主要介紹了GO?CountMinSketch計(jì)數(shù)器(布隆過濾器思想的近似計(jì)數(shù)器),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09

最新評論

南昌市| 深水埗区| 黑山县| 陵川县| 东台市| 岢岚县| 尚义县| 霞浦县| 长岭县| 廊坊市| 汉寿县| 文水县| 竹山县| 隆子县| 东辽县| 新宁县| 衡阳县| 台江县| 湘西| 杭锦后旗| 万载县| 宁都县| 永州市| 旺苍县| 桂东县| 兴山县| 珠海市| 安吉县| 朝阳县| 崇文区| 巴东县| 江津市| 盘锦市| 安岳县| 曲靖市| 茂名市| 新平| 新民市| 诸暨市| 大冶市| 岐山县|