Maison > développement back-end > Golang > le corps du texte

Comment prendre des captures d'écran dans Golang

PHPz
Libérer: 2023-04-23 15:06:37
original
1479 Les gens l'ont consulté

Golang est un langage de programmation populaire utilisé pour développer des services et des applications Web efficaces. Prendre des captures d'écran est une compétence très utile pendant le processus de développement, cela permet de vérifier le code ou de partager les résultats. Cet article explique comment utiliser Golang pour prendre des captures d'écran.

Dans Golang, nous pouvons utiliser des bibliothèques tierces pour implémenter des captures d'écran. Les bibliothèques les plus populaires sont mitchellh/go-ps et kbinani/screenshot. mitchellh/go-ps est utilisé pour obtenir des informations sur le processus et peut être utilisé pour trouver l'ID du processus qui doit être capturé, tandis que kbinani/screenshot est utilisé pour prendre des captures d'écran.

Tout d’abord, nous devons importer ces bibliothèques. Nous pouvons les installer en exécutant simplement la commande suivante dans le terminal :

go get github.com/mitchellh/go-ps
go get github.com/kbinani/screenshot
Copier après la connexion

Maintenant, nous pouvons utiliser la bibliothèque mitchellh/go-ps pour obtenir la liste des processus en cours d'exécution. Nous pouvons le faire en utilisant l'extrait de code suivant :

processes, err := ps.Processes()
if err != nil {
    panic(err)
}
for _, process := range processes {
    fmt.Println(process.Pid(), process.Executable())
}
Copier après la connexion

Ce code imprimera l'ID et le nom de l'exécutable de tous les processus en cours d'exécution. Nous pouvons les filtrer selon nos besoins.

Ensuite, nous devons déterminer la zone d'écran que nous voulons capturer. Nous pouvons obtenir la résolution actuelle de l'écran en utilisant la fonction Size() de kbinani/screenshot. Nous pouvons également définir manuellement la zone que nous devons intercepter.

bounds := image.Rect(0, 0, 800, 600) // 截取区域左上角和右下角坐标
img, err := screenshot.CaptureRect(bounds)
if err != nil {
    panic(err)
}
Copier après la connexion

Ce code capturera une capture d'écran dans une zone donnée et la stockera dans la variable img. Nous pouvons l'enregistrer sous forme de fichier PNG en utilisant le package image/png.

file, err := os.Create("screenshot.png")
if err != nil {
    panic(err)
}
defer file.Close()
err = png.Encode(file, img)
if err != nil {
    panic(err)
}
Copier après la connexion

L'exemple de code complet est le suivant :

package main

import (
    "fmt"
    "image"
    "image/png"
    "os"

    "github.com/kbinani/screenshot"
    "github.com/mitchellh/go-ps"
)

func main() {
    // 获取进程列表
    processes, err := ps.Processes()
    if err != nil {
        panic(err)
    }
    for _, process := range processes {
        fmt.Println(process.Pid(), process.Executable())
    }

    // 截取屏幕截图
    bounds := image.Rect(0, 0, 800, 600)
    img, err := screenshot.CaptureRect(bounds)
    if err != nil {
        panic(err)
    }

    // 将截图保存到PNG文件中
    file, err := os.Create("screenshot.png")
    if err != nil {
        panic(err)
    }
    defer file.Close()
    err = png.Encode(file, img)
    if err != nil {
        panic(err)
    }

    fmt.Println("截图已保存到screenshot.png文件中")
}
Copier après la connexion

Grâce à l'introduction de cet article, j'espère que vous maîtrisez les compétences nécessaires pour prendre des captures d'écran à l'aide de Golang. Les captures d'écran sont un outil très utile lors du développement d'applications. Par conséquent, vous pouvez utiliser cette technique pour rationaliser votre flux de travail.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!