Maison >développement back-end >Golang >Comment puis-je combiner plusieurs images en une seule dans Go ?

Comment puis-je combiner plusieurs images en une seule dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-06 07:31:02969parcourir

How can I combine multiple images into one in Go?

Création d'une seule image à partir de plusieurs images dans Go

Question :

Dans Go, comment pouvons-nous combiner plusieurs fichiers image (par exemple, PNG ou JPEG) en une seule image plus grande ?

Réponse :

Pour concaténer des images dans Go, suivez ces étapes :

  1. Charger les images :

    img1, _, err := image.Decode(os.Open("test1.jpg"))
    img2, _, err := image.Decode(os.Open("test2.jpg"))
  2. Déterminer la position :
    Décidez où la deuxième image doit être placée par rapport à la première. Par exemple, si vous souhaitez le placer à droite, utilisez ce qui suit :

    sp2 := image.Point{img1.Bounds().Dx(), 0}
  3. Créez un grand rectangle :
    Calculez un rectangle qui couvre les deux images :

    r := image.Rectangle{image.Point{0, 0}, r2.Max}
  4. Créer une nouvelle image :
    Créer une nouvelle image suffisamment grande pour contenir les deux images :

    rgba := image.NewRGBA(r)
  5. Dessinez les images :
    Utilisez la fonction Dessiner pour placer les images sur la nouvelle image :

    draw.Draw(rgba, img1.Bounds(), img1, image.Point{0, 0}, draw.Src)
    draw.Draw(rgba, r2, img2, sp2, draw.Src)
  6. Enregistrer la sortie :
    Exporter l'image combinée :

    out, err := os.Create("./output.jpg")
    jpeg.Encode(out, rgba, &jpeg.Options{
       Quality: 80,
    })

En suivant ces étapes, vous pouvez créer une seule image composée de plusieurs images, en l'agrandissant vos capacités de manipulation d'images dans Go.

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