Heim >Backend-Entwicklung >Golang >Wie verkette ich Bilder in Go?
Bilder in Go verketten: Eine umfassende Anleitung
In Go ist das Bearbeiten von Bildern dank der leistungsstarken Bildbibliotheken ein Kinderspiel. Wenn Sie jedoch mehrere Bilder auf einer großen Leinwand zusammenführen möchten, kann es unübersichtlich werden. Hier ist eine Schritt-für-Schritt-Anleitung, um diese Aufgabe wie ein Profi zu erledigen.
Bilder laden
Laden Sie zunächst die Bilder, die Sie verketten möchten. Hier ist ein Codeausschnitt, um das zu tun:
// 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) }
Neues Bild erstellen
Als nächstes erstellen wir ein geräumiges neues Bild, um beide geladenen Bilder aufzunehmen. Bestimmen Sie die Abmessungen dieser neuen Leinwand, indem Sie die Breiten beider Bilder addieren:
r := image.Rectangle{image.Point{0, 0}, img1.Bounds().Dx() + img2.Bounds().Dx(), img1.Bounds().Dy()} rgba := image.NewRGBA(r)
Bilder zeichnen
Jetzt kommt der spaßige Teil: das Zusammensetzen der Bilder darin neue Leinwand. Bestimmen Sie die Position, an der Sie das zweite Bild platzieren möchten, und zeichnen Sie dann beide Bilder auf die Leinwand:
// 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)
Ergebnis speichern
Lassen Sie uns dies abschließend verewigen verkettetes Meisterwerk, indem Sie es als neue Bilddatei speichern:
out, err := os.Create("./output.jpg") if err != nil { fmt.Println(err) } var opt jpeg.Options opt.Quality = 80 jpeg.Encode(out, rgba, &opt)
Das ist es! Sie haben mehrere Bilder erfolgreich zu einem zusammenhängenden Ganzen zusammengeführt. Machen Sie sich auf den Weg und erobern Sie die Welt der Bildmanipulation.
Das obige ist der detaillierte Inhalt vonWie verkette ich Bilder in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!