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 ce nouveau canevas 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 nouveau canevas. Déterminez la position où vous souhaitez placer la deuxième image, puis dessinez les deux images sur le canevas :
// 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 ce résultat concaténé chef-d'œuvre 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3