22416


タイトルの通りなのですが、

RGBAとNRGBA等のNが頭についた構造体の違いはなんでしょうか。

[image.RGBA](https://golang.org/pkg/image/#RGBA)  
[image.NRGBA](https://golang.org/pkg/image/#NRGBA)

RGBAはcolor.RGBAを持っていて、NRGBAはcolor.NRGBAを持っていますが、どちらも同じフィールドを持っていて、メソッドも同じなので何が違うのかがわかりません。

[color.RBGA](https://golang.org/pkg/image/color/#RGBA)  
[color.NRGBA](https://golang.org/pkg/image/color/#NRGBA)

これらの構造体は何が違っていてどのように使い分ければいいのでしょうか。


CC BY-SA 3.0
2016-02-23T02:15:27.033
22413
2016-02-23T03:14:39.690
2016-02-23T03:14:39.690
7232
question
go
Golang imageパッケージのRGBA等とNRGBA等の違い


[The Go image package](http://blog.golang.org/go-image-package) を読むと、

> **Colors and Color Models**
>
> Note that the R field of an RGBA is an 8-bit **alpha-premultiplied color**
> in the range [0, 255]. ... Similarly, the NRGBA struct type represents an
> 8-bit **non-alpha-premultiplied color** , as used by the PNG image format.
> When manipulating an NRGBA's fields directly, the values are non-alpha-
> premultiplied, but when calling the RGBA method, the return values are
> alpha-premultiplied.

RGB 値に alpha 値を乗算している(RGBA)か、していないか(NRGBA)の違いがある様です。


CC BY-SA 3.0
2016-02-23T03:13:53.310
22416
2016-02-23T03:13:53.310
22413
answer