複数の画像を 1 つの大きな画像に連結することは、画像処理における一般的なシナリオです。 Go では、イメージ パッケージを使用すると、これを簡単に実現できます。
まず、すべての小さなイメージを収容できる十分な大きさの新しいイメージを作成します。
newImage := image.NewRGBA(image.Rect(0, 0, totalWidth, maxHeight))
ここで、totalWidth は小さい画像の合計幅、maxHeight はそれらの最大の高さです。
次に、小さい画像をそれぞれ新しい画像に描画します。画像。各画像の適切な開始点と四角形を決定します。
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 }
最後に、連結された画像をファイルまたはストリームにエクスポートします。
out, err := os.Create("output.png") if err != nil { return err } if err := png.Encode(out, newImage); err != nil { return err }
以上がGo イメージ パッケージを使用して複数のイメージを 1 つのイメージに連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。