Maison >développement back-end >Golang >Comment puis-je combiner et faire pivoter des images dans Go ?
Considérez le scénario suivant :
Le but est de positionner i1 et i2 sur bi sous des angles spécifiques et de créer une image finale. Les coordonnées de i1 et i2 sont fournies ainsi que leurs angles de rotation. i1 et i2 peuvent se chevaucher partiellement, mais un z-index détermine quelle image doit apparaître au premier plan.
La tâche est d'obtenir cette fonctionnalité dans Golang.
Le package d'images Go offre des capacités de manipulation d'images, comme décrit dans « Dessin d'images dans Go ». (http://golang.org/doc/articles/image_draw.html).
Pour combiner des images avec des rotations, un package auxiliaire appelé graphiques-go est recommandé. Voici un exemple de programme Go qui démontre la combinaison de deux images avec des rotations :
package main import ( "fmt" "os" "image/draw" "image" "image/jpeg" "code.google.com/p/graphics-go/graphics" ) func main() { fImg1, _ := os.Open("arrow1.jpg") defer fImg1.Close() img1, _, _ := image.Decode(fImg1) fImg2, _ := os.Open("arrow2.jpg") defer fImg2.Close() img2, _, _ := image.Decode(fImg2) m := image.NewRGBA(image.Rect(0, 0, 800, 600)) draw.Draw(m, m.Bounds(), img1, image.Point{0,0}, draw.Src) //draw.Draw(m, m.Bounds(), img2, image.Point{-200,-200}, draw.Src) graphics.Rotate(m, img2, &graphics.RotateOptions{3.5}) toimg, _ := os.Create("new.jpg") defer toimg.Close() jpeg.Encode(toimg, m, &jpeg.Options{jpeg.DefaultQuality}) }
Dans cet exemple :
Il est important de noter que le package graphiques-go repose sur des bibliothèques externes qui peuvent nécessiter une installation et une configuration. Reportez-vous à sa documentation pour plus de détails.
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!