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) }
Ein 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 in dieser neuen 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)
Speichern des Ergebnisses
Lassen Sie uns dies abschließend verewigen 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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3