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

Comment concaténer des images dans Go ?

DDD
Libérer: 2024-11-07 01:45:03
original
996 Les gens l'ont consulté

How to Concatenate Images in Go?

Concaténer des images dans Go : un guide complet

Dans Go, manipuler des images est un jeu d'enfant grâce à ses puissantes bibliothèques d'images. Cependant, si vous souhaitez fusionner plusieurs images dans un seul grand canevas, les choses peuvent devenir confuses. Voici un guide étape par étape pour gérer cette tâche comme un pro.

Chargement des images

Pour démarrer, chargez les images que vous souhaitez concaténer. Voici un extrait de code pour ce faire :

// Open the first image
imgFile1, err := os.Open("test1.jpg")
if err != nil {
    fmt.Println(err)
}
// Decode the image
img1, _, err := image.Decode(imgFile1)
if err != nil {
    fmt.Println(err)
}

// Open the second image
imgFile2, err := os.Open("test2.jpg")
if err != nil {
    fmt.Println(err)
}
// Decode the image
img2, _, err := image.Decode(imgFile2)
if err != nil {
    fmt.Println(err)
}
Copier après la connexion

Création d'une nouvelle image

Ensuite, créons une nouvelle image spacieuse pour accueillir les deux images chargées. Déterminez les dimensions de cette nouvelle toile en ajoutant les largeurs des deux images :

r := image.Rectangle{image.Point{0, 0}, img1.Bounds().Dx() + img2.Bounds().Dx(), img1.Bounds().Dy()}
rgba := image.NewRGBA(r)
Copier après la connexion

Dessiner les images

Vient maintenant la partie amusante : assembler les images dans ce nouvelle toile. Déterminez la position où vous souhaitez placer la deuxième image, puis dessinez les deux images sur la toile :

// Starting point of the second image (bottom left)
sp2 := image.Point{img1.Bounds().Dx(), 0}
// Rectangle for the second image
r2 := image.Rectangle{sp2, sp2.Add(img2.Bounds().Size())}

// Draw the first image
draw.Draw(rgba, img1.Bounds(), img1, image.Point{0, 0}, draw.Src)
// Draw the second image
draw.Draw(rgba, r2, img2, image.Point{0, 0}, draw.Src)
Copier après la connexion

Enregistrement du résultat

Enfin, immortalisons cela chef-d'œuvre concaténé en l'enregistrant en tant que nouveau fichier image :

out, err := os.Create("./output.jpg")
if err != nil {
    fmt.Println(err)
}

var opt jpeg.Options
opt.Quality = 80

jpeg.Encode(out, rgba, &opt)
Copier après la connexion

C'est tout ! Vous avez réussi à fusionner plusieurs images en un tout cohérent. Allez-y et partez à la conquête du monde de la manipulation d'images.

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