Heim >Backend-Entwicklung >Golang >Wie kann ich Bilder in Go kombinieren und drehen?
Stellen Sie sich das folgende Szenario vor:
Das Ziel besteht darin, i1 und i2 in bestimmten Winkeln über Bi zu positionieren und ein endgültiges Bild zu erstellen. Die Koordinaten für i1 und i2 werden zusammen mit ihren Drehwinkeln bereitgestellt. i1 und i2 können sich teilweise überlappen, aber ein Z-Index bestimmt, welches Bild im Vordergrund erscheinen soll.
Die Aufgabe besteht darin, diese Funktionalität in Golang zu erreichen.
Das Go-Bildpaket bietet Bildbearbeitungsfunktionen, wie unter „Bildzeichnen in Go“ beschrieben. (http://golang.org/doc/articles/image_draw.html).
Um Bilder mit Rotationen zu kombinieren, wird ein Hilfspaket namens Graphics-go empfohlen. Hier ist ein Beispiel für ein Go-Programm, das die Kombination zweier Bilder mit Drehungen demonstriert:
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}) }
In diesem Beispiel:
Es ist wichtig zu beachten, dass das Graphics-Go-Paket auf externen Bibliotheken basiert, die möglicherweise installiert und eingerichtet werden müssen. Weitere Informationen finden Sie in der Dokumentation.
Das obige ist der detaillierte Inhalt vonWie kann ich Bilder in Go kombinieren und drehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!