「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Goで画像を連結するには?

Goで画像を連結するには?

2024 年 11 月 9 日に公開
ブラウズ:834

How to Concatenate Images in Go?

Go での画像の連結: 総合ガイド

Go では、強力な画像ライブラリのおかげで画像の操作が簡単です。ただし、複数の画像を 1 つの大きなキャンバスに結合する場合は、混乱が生じる可能性があります。ここでは、プロのようにこのタスクを処理するためのステップバイステップのガイドを示します。

画像の読み込み

まず、連結したい画像を読み込みます。これを行うためのコード スニペットは次のとおりです:

// 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)
}

新しいイメージの作成

次に、読み込まれた両方のイメージを収容できる広々とした新しいイメージを作成しましょう。両方の画像の幅を加算して、この新しいキャンバスの寸法を決定します。

r := image.Rectangle{image.Point{0, 0}, img1.Bounds().Dx()   img2.Bounds().Dx(), img1.Bounds().Dy()}
rgba := image.NewRGBA(r)

画像の描画

次は楽しい部分です。この新しいキャンバス内で画像を組み立てます。 2 番目の画像を配置する位置を決定し、両方の画像をキャンバスに描画します:

// 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)

結果の保存

最後に、これを連結して不滅化しましょう。新しい画像ファイルとして保存して傑作を作成:

out, err := os.Create("./output.jpg")
if err != nil {
    fmt.Println(err)
}

var opt jpeg.Options
opt.Quality = 80

jpeg.Encode(out, rgba, &opt)

以上です。複数の画像を結合して 1 つのまとまりにまとめることができました。画像操作の世界を征服してください。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3