ホームページ >バックエンド開発 >Golang >Go で複数の画像を 1 つに結合するにはどうすればよいですか?

Go で複数の画像を 1 つに結合するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-06 07:31:02965ブラウズ

How can I combine multiple images into one in Go?

Go で複数の画像から単一の画像を作成する

質問:

Go では、複数の画像ファイル (PNG や JPEG など) を 1 つの大きな画像に結合するにはどうすればよいですか?

答え:

Go で画像を結合するには、次の手順に従います。 :

  1. 画像の読み込み:

    img1, _, err := image.Decode(os.Open("test1.jpg"))
    img2, _, err := image.Decode(os.Open("test2.jpg"))
  2. 位置の決定:
    最初の画像に対して 2 番目の画像をどこに配置するかを決定します。たとえば、右側に配置したい場合は、次を使用します:

    sp2 := image.Point{img1.Bounds().Dx(), 0}
  3. 大きな長方形を作成します:
    次の長方形を計算します。両方の画像をカバーします:

    r := image.Rectangle{image.Point{0, 0}, r2.Max}
  4. 新しい画像を作成します:
    両方の画像を保持できる十分な大きさの新しい画像を作成します:

    rgba := image.NewRGBA(r)
  5. 画像を描画します:
    描画機能を使用して、新しい画像上に画像を配置します:

    draw.Draw(rgba, img1.Bounds(), img1, image.Point{0, 0}, draw.Src)
    draw.Draw(rgba, r2, img2, sp2, draw.Src)
  6. 出力を保存します:
    結合された画像をエクスポートします:

    out, err := os.Create("./output.jpg")
    jpeg.Encode(out, rgba, &jpeg.Options{
       Quality: 80,
    })

これらの手順に従って、複数の画像から構成される 1 つの画像を作成できます。 Go の画像操作機能。

以上がGo で複数の画像を 1 つに結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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