Das Verketten mehrerer Bilder zu einem einzigen, größeren Bild ist ein häufiges Szenario in der Bildverarbeitung. In Go ist dies mithilfe des Bildpakets ganz einfach.
Erstellen Sie zunächst ein neues Bild mit Abmessungen, die groß genug sind, um alle kleineren Bilder aufzunehmen.
newImage := image.NewRGBA(image.Rect(0, 0, totalWidth, maxHeight))
Hier ist totalWidth die kombinierte Breite der kleineren Bilder und maxHeight die maximale Höhe unter ihnen.
Zeichnen Sie als Nächstes jedes kleinere Bild auf das neue Bild. Bestimmen Sie den geeigneten Startpunkt und das Rechteck für jedes Bild.
for _, img := range smallerImages { offset := point{dx, 0} // offset of the current image r := img.Bounds() // rectangle of the smaller image newImage.Draw(image.Rect(offset.X, offset.Y, offset.X+r.Dx(), offset.Y+r.Dy()), img, r.Min, draw.Src) dx += r.Dx() // update the x coordinate for the next image }
Abschließend exportieren Sie das verkettete Bild in eine Datei oder einen Stream.
out, err := os.Create("output.png") if err != nil { return err } if err := png.Encode(out, newImage); err != nil { return err }
Das obige ist der detaillierte Inhalt vonWie kann ich mit dem Go-Image-Paket mehrere Bilder zu einem einzigen Bild verketten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!