欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

借助第三方庫

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是起點坐標(biāo), width,height 是圖片的寬和高。

全屏截圖 CaptureDisplay

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

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

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

func NumActiveDisplays()int

返回活動的顯示器的數(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ù)是一個矩形,即兩個點,一個最小點,一個最大點

演示

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")

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

?? ?//全屏截取所有活動屏幕
?? ?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 自定義截圖
?? ?// 獲取第一個屏幕顯示范圍
?? ?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獲取指定屏幕 矩形最小點和最大點
?? ?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語言實現(xiàn)屏幕截圖的示例代碼的文章就介紹到這了,更多相關(guān)go語言屏幕截圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文帶你掌握Golang的反射基礎(chǔ)

    一文帶你掌握Golang的反射基礎(chǔ)

    go的反射是由其標(biāo)準(zhǔn)庫中的reflect包實現(xiàn),該reflect包實現(xiàn)了在運行時進(jìn)行反射的能力,本篇主要介紹了reflect的常用的幾個方法,希望對大家有所幫助
    2023-02-02
  • Go語言循環(huán)遍歷含有中文的字符串的方法小結(jié)

    Go語言循環(huán)遍歷含有中文的字符串的方法小結(jié)

    這篇文章主要介紹了Go語言循環(huán)遍歷含有中文的字符串的幾種方法,文章通過代碼示例講解的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴跟著小編一起來看看吧
    2023-07-07
  • 淺析Golang中類型嵌入的簡介與使用

    淺析Golang中類型嵌入的簡介與使用

    類型嵌入指的就是在一個類型的定義中嵌入了其他類型,Go?語言支持兩種類型嵌入,分別是接口類型的類型嵌入和結(jié)構(gòu)體類型的類型嵌入,下面我們就來詳細(xì)一下類型嵌入的使用吧
    2023-11-11
  • golang?select?機制和超時問題

    golang?select?機制和超時問題

    golang 中的協(xié)程使用非常方便,但是協(xié)程什么時候結(jié)束是一個控制問題,可以用 select 配合使用,這篇文章主要介紹了golang?select?機制和超時問題,需要的朋友可以參考下
    2022-06-06
  • Go定時器cron的使用詳解

    Go定時器cron的使用詳解

    本篇文章主要介紹了Go定時器cron的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Golang中 import cycle not allowed 問題的解決方法

    Golang中 import cycle not allowed 問題

    這篇文章主要介紹了Golang中 import cycle not allowed 問題的解決方法,問題從描述到解決都非常詳細(xì),需要的小伙伴可以參考一下
    2022-03-03
  • Go連接數(shù)據(jù)庫操作基礎(chǔ)講解

    Go連接數(shù)據(jù)庫操作基礎(chǔ)講解

    這篇文章主要為大家介紹了Go連接數(shù)據(jù)庫操作基礎(chǔ)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • go語言context包功能及操作使用詳解

    go語言context包功能及操作使用詳解

    這篇文章主要為大家介紹了go語言context包功能及操作使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • golang中defer的使用規(guī)則詳解

    golang中defer的使用規(guī)則詳解

    大家應(yīng)該都知道在golang當(dāng)中,defer代碼塊會在函數(shù)調(diào)用鏈表中增加一個函數(shù)調(diào)用。下面這篇文章主要給大家介紹了關(guān)于golang中defer的使用規(guī)則,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • 深度剖析Golang中的數(shù)組,字符串和切片

    深度剖析Golang中的數(shù)組,字符串和切片

    Golang 是一種以簡潔性、并發(fā)性和性能而著稱的編程語言。其重要特性之一是能夠處理數(shù)組、字符串和切片等數(shù)據(jù)類型。本篇文章將深入討論這些數(shù)據(jù)類型,并探討如何在代碼中使用它們
    2023-04-04

最新評論