Requête :
Comment positionner et faire pivoter plusieurs images (i1 et i2) sur une image d'arrière-plan (bi) en Golang, assurant le bon positionnement et le z-index pour le chevauchement images ?
Solution :
Pour y parvenir, vous pouvez utiliser le package d'images dans Golang et exploiter le package graphiques-go pour la manipulation d'images. Voici un extrait de code pour visualiser la solution :
package main import ( "fmt" "image" "image/draw" "image/jpeg" "code.google.com/p/graphics-go/graphics" "os" ) func main() { // Load the background image fImg1, _ := os.Open("background.jpg") defer fImg1.Close() bi, _, _ := image.Decode(fImg1) // Load the overlay images fImg2, _ := os.Open("overlay1.jpg") defer fImg2.Close() i1, _, _ := image.Decode(fImg2) fImg3, _ := os.Open("overlay2.jpg") defer fImg3.Close() i2, _, _ := image.Decode(fImg3) // Create a new image to hold the final result m := image.NewRGBA(image.Rect(0, 0, bi.Bounds().Max.X, bi.Bounds().Max.Y)) // Draw the background image draw.Draw(m, m.Bounds(), bi, image.Point{0, 0}, draw.Src) // Draw the overlay images with the specified positioning and rotation graphics.Rotate(m, i1, &graphics.RotateOptions{3.141592653589793, 0, 0}) graphics.Draw(m, m.Bounds(), i2, image.Point{100, 100}, draw.Src) // Save the final image to a file toimg, _ := os.Create("new.jpg") defer toimg.Close() jpeg.Encode(toimg, m, &jpeg.Options{jpeg.DefaultQuality}) fmt.Println("Image manipulation complete. Saved as 'new.jpg'.") }
Dans cet exemple, la variable m représente le canevas d'image où les images d'arrière-plan et de superposition sont dessinées. La fonction graphiques.Rotate est utilisée pour faire pivoter les images de superposition en fonction des valeurs d'index z fournies. L'image finale est enregistrée sous "new.jpg" une fois la manipulation terminée.
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!