Maison >développement back-end >Golang >Comment transcoder des images en Golang

Comment transcoder des images en Golang

PHPz
PHPzoriginal
2023-04-23 10:19:391128parcourir

Dans le développement Web, le transcodage d'images est une exigence très courante. Dans Golang, vous pouvez transcoder des images en utilisant les packages image et image/jpeg de la bibliothèque standard.

Dans Golang, les images peuvent être décodées en objets image standard via image.Decoder, et les objets image standard peuvent être encodés dans les formats d'image requis, tels que JPG, PNG, BMP, etc., via image.Encoder. Cet article prend comme exemple le transcodage d’une image au format JPEG au format PNG.

Tout d'abord, nous devons lire une image au format JPEG, ce qui peut être réalisé grâce au code suivant :

file, err := os.Open("input.jpg")
if err != nil {
    log.Fatal(err)
}
defer file.Close()

img, err := jpeg.Decode(file)
if err != nil {
    log.Fatal(err)
}

Dans le code ci-dessus, nous utilisons os.Open pour ouvrir un fichier image nommé input.jpg Si l'ouverture échoue. , alors générera une erreur. Ensuite, nous utilisons jpeg.Decode pour décoder le fichier en un objet image img. Si le décodage échoue, une erreur sera générée.

Ensuite, nous devons encoder l'objet image dans une image au format PNG. Nous pouvons utiliser l'Encoder dans le package image/png pour l'encodage, comme suit :

out, err := os.Create("output.png")
if err != nil {
    log.Fatal(err)
}
defer out.Close()

err = png.Encode(out, img)
if err != nil {
    log.Fatal(err)
}

Dans le code ci-dessus, nous utilisons os.Create pour créer un fichier image au format PNG nommé output.png. Si la création échoue, une erreur se produira. être jeté. Ensuite, nous utilisons png.Encode pour encoder l'objet image img dans une image au format PNG et écrivons le résultat dans output.png. Si l'encodage échoue, une erreur sera générée.

L'implémentation complète du code ci-dessus est la suivante :

package main

import (
    "image/jpeg"
    "image/png"
    "log"
    "os"
)

func main() {

    file, err := os.Open("input.jpg")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    img, err := jpeg.Decode(file)
    if err != nil {
        log.Fatal(err)
    }

    out, err := os.Create("output.png")
    if err != nil {
        log.Fatal(err)
    }
    defer out.Close()

    err = png.Encode(out, img)
    if err != nil {
        log.Fatal(err)
    }

    log.Println("Image conversion successful!")

}

En exécutant le code ci-dessus, une image au format JPEG peut être transcodée en une image au format PNG. Il convient de noter que nous devons gérer les erreurs de manière appropriée pendant le processus de transcodage et que nous devons fermer les ressources correspondantes après avoir utilisé les fichiers et les objets image.

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!

Déclaration:
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