Maison > Article > développement back-end > Comment concaténer des images dans 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) }
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)
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)
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)
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!