画像のピクセル情報を読み出す

説明

画像のピクセル情報を読み出すには、画像を読み込み展開します。Decode()により展開された画像情報のAt()メソッドを使うとピクセル情報を一括して読み出すことができます。At()メソッドにはX, Y座標をパラメーターとして指定します。戻り値はR,G,B,αの多値になります。それぞれに輝度と不透明度が0〜0ffffの範囲で入ります。画像が8bit色深度の場合は0xffで論理積を取った値になります。(多分。下位バイト、上位バイトのどちらも同じみたいなので、どちらかを使用すればよさそう)

サンプル [サンプルをダウンロード]

package main
import (
"fmt"
"image"
"os"
_ "image/png"
)
func main() {
file, err := os.Open("/images/test.png")
if err != nil {
fmt.Println("ファイルが開けませんでした。")
os.Exit(1)
}
defer file.Close()
m, _, err := image.Decode(file)
if err != nil {
fmt.Println("画像を解析できませんでした。")
os.Exit(1)
}
c := m.At(1, 0) // (x,y)座標、つまり(1, 0)のピクセル情報を取得
r,g,b,a := c.RGBA() // RGBαの順番で読み出し
fmt.Printf("赤:%x\n緑:%x\n青:%x\nα:%x\n", r, g, b, a)
}

実行結果

Go言語を使ったプログラムの実行結果