

皆様、よろしくお願いします。

現在GO言語を使用して、PNG画像からpixel intensityを取り出したいのですが、問題があり、ここで質問させていただきます。

以下がコードとなります。

[code]

    package main
    
    import (
                "bytes"
                "io/ioutil"
                "fmt"
                "image/color"
                "image/png"
            )
    
    import "github.com/harrydb/go/img/grayscale"
    
    func main() {
    
      FName_BG := "test.background.png";
      data_BG, _ := ioutil.ReadFile(FName_BG)
      img_BG, _ := png.Decode(bytes.NewReader(data_BG))
      grayImg_BG := grayscale.Convert(img_BG, grayscale.ToGrayLuminance)
    
        MaxRowSize, MaxColSize := img_BG.Bounds().Max.Y, img_BG.Bounds().Max.X;
    
        for y := 0; y < MaxRowSize; y++ {
             for x := 0; x < MaxColSize; x++ {
                 c1_bg := grayImg_BG.At(x,y).(color.Gray);
                 fmt.Println(c1_bg)
             }
         }
    }
    
[/code]

上記のコードでは、PNG画像を一旦Grayscaleに変換して、pixel intensityを取得する事を試みています。

問題は、「fmt.Println(c1_bg)」で表示されるものは

[code]

    {255}
    {255}
    {255}
    {255}
    
[/code]

のように、color grayで表示されてしまいます。これをただ単にintegerにしたいだけです。  
（具体的には、{255} -> 255のようにしたいだけです。）

もしご存知の方がおられましたら、ご教授をお願いします。

よろしくお願いします。


CC BY-SA 4.0
2018-11-20T17:54:05.037
50480
2018-11-20T18:26:35.630
2018-11-20T18:10:18.660
19110
11048
question
go
type color.Grayからtype intに変換する方法


`color.Gray` の[定義](https://golang.org/pkg/image/color/#Gray)は以下のようになっているので、

[code]

    type Gray struct {
            Y uint8
    }
    
[/code]

整数値を得たいだけなら `Y` を参照するとできます。

[code]

    fmt.Println(c.Y)
    
[/code]

([Go Playground 上のサンプルコード](https://play.golang.org/p/RHrQCpBxPzv))


CC BY-SA 4.0
2018-11-20T18:15:23.633
50481
2018-11-20T18:26:35.630
2018-11-20T18:26:35.630
19110
19110
50480
answer