画像がグレイスケールかRGBAかを調べたい
Goのimageで入力された画像がグレイスケールかRGBAかを判定したいです。どのようにすれば実現できるのでしょうか。
image.ColorModel()
で判定できるかと考えましたができませんでした。
switch img.ColorModel() {
case color.GrayModel:
res = make([][][]float32, 1)
res[0] = make([][]float32, height)
case color.RGBAModel:
res = make([][][]float32, 3)
for i := 0; i < 3; i++ {
res[i] = make([][]float32, height)
}
case color.RGBA64Model:
res = make([][][]float32, 3)
for i := 0; i < 3; i++ {
res[i] = make([][]float32, height)
}
case color.NRGBAModel:
fmt.Println("NRGBAModel")
case color.NRGBA64Model:
fmt.Println("NRGBA64Model")
default:
fmt.Println(img.ColorModel())
}
上のようなコードでは動きませんでした。
追記
グレイスケールの画像は上記コードで判定できました。しかし、RGBAのものを判定できませんでした。