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 つのまとまりにまとめることができました。画像操作の世界を征服してください。
以上がGoで画像を連結するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。