ホームページ  >  記事  >  バックエンド開発  >  Go イメージ パッケージを使用して複数のイメージを 1 つのイメージに連結するにはどうすればよいですか?

Go イメージ パッケージを使用して複数のイメージを 1 つのイメージに連結するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-06 16:02:03804ブラウズ

How can I concatenate multiple images into a single image using the Go image package?

Go での画像の連結

複数の画像を 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。