Golang を使用して個別の画像を色処理およびトーン化する方法
要約: この記事では、Golang プログラミング言語を使用して個別の画像を色処理およびトーン化する方法を紹介します。 Golang の画像処理ライブラリを使用してこれらの関数を実装し、コード例を通じて具体的な実装プロセスを示します。
package main import ( "image" "image/color" "image/jpeg" "log" "os" ) func main() { // 打开图片文件 file, err := os.Open("input.jpg") if err != nil { log.Fatal(err) } defer file.Close() // 解码图片 img, err := jpeg.Decode(file) if err != nil { log.Fatal(err) } // 创建一个新的灰度化图片 grayImg := image.NewGray(img.Bounds()) // 遍历图片像素,将每个像素灰度化 for x := 0; x < img.Bounds().Max.X; x++ { for y := 0; y < img.Bounds().Max.Y; y++ { c := img.At(x, y) gray := color.GrayModel.Convert(c) grayImg.Set(x, y, gray) } } // 保存灰度化后的图片 outFile, err := os.Create("output.jpg") if err != nil { log.Fatal(err) } defer outFile.Close() jpeg.Encode(outFile, grayImg, nil) }
上記のコードでは、まず、os パッケージの Open 関数を通じて input という名前のファイルを開きます。画像ファイル。次に、jpeg パッケージの Decode 関数を使用して画像をデコードし、image.Image オブジェクトを取得します。次に、イメージ パッケージの NewGray 関数を使用して、新しいグレースケール イメージを作成します。次に、二重ループを使用して元のイメージのピクセルを走査し、ピクセルのカラー値を通じて対応するグレースケール値を計算し、それを新しいグレースケール イメージのピクセル値として設定します。最後に、jpeg パッケージの Encode 機能を使用して、グレースケール イメージをoutput.jpg ファイルに保存します。
package main import ( "image" "image/color" "image/jpeg" "log" "os" ) func main() { // 打开图片文件 file, err := os.Open("input.jpg") if err != nil { log.Fatal(err) } defer file.Close() // 解码图片 img, err := jpeg.Decode(file) if err != nil { log.Fatal(err) } // 创建一个新的彩色图片 colorImg := image.NewRGBA(img.Bounds()) // 遍历图片像素,将每个像素的R、G、B颜色值分离出来 for x := 0; x < img.Bounds().Max.X; x++ { for y := 0; y < img.Bounds().Max.Y; y++ { c := img.At(x, y) r, g, b, _ := c.RGBA() colorImg.Set(x, y, color.RGBA{R: uint8(r), G: 0, B: 0}) } } // 保存分离后的图片 outFile, err := os.Create("output.jpg") if err != nil { log.Fatal(err) } defer outFile.Close() jpeg.Encode(outFile, colorImg, nil) }
上記のコードでは、image/color パッケージの RGBA 関数を使用してピクセル カラー値を分離します。元の画像を取り出して、新しいカラー画像を作成します。次に、元の画像のピクセルを横断することによって、各ピクセルの R、G、B のカラー値を分離し、G と B の値を 0 に設定することで、色相分離操作を実現します。写真。最後に、jpeg パッケージの Encode 機能を使用して、分離した画像をoutput.jpg ファイルに保存します。
以上がGolang を使用して画像を色付けおよびトーン分離する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。