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

DDD
リリース: 2024-11-06 16:02:03
オリジナル
820 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!