Commit 25bf7921 authored by Nigel Tao's avatar Nigel Tao

image/color: add alpha-premultiplied comment.

Change-Id: I9968f53a8286a0e5ccc197a9b5fae499e2f95326
Reviewed-on: https://go-review.googlesource.com/7790Reviewed-by: default avatarRob Pike <r@golang.org>
parent 4f35ad60
...@@ -12,11 +12,17 @@ type Color interface { ...@@ -12,11 +12,17 @@ type Color interface {
// for the color. Each value ranges within [0, 0xFFFF], but is represented // for the color. Each value ranges within [0, 0xFFFF], but is represented
// by a uint32 so that multiplying by a blend factor up to 0xFFFF will not // by a uint32 so that multiplying by a blend factor up to 0xFFFF will not
// overflow. // overflow.
//
// An alpha-premultiplied color component c has been scaled by alpha (a),
// so has valid values 0 <= c <= a.
RGBA() (r, g, b, a uint32) RGBA() (r, g, b, a uint32)
} }
// RGBA represents a traditional 32-bit alpha-premultiplied color, // RGBA represents a traditional 32-bit alpha-premultiplied color, having 8
// having 8 bits for each of red, green, blue and alpha. // bits for each of red, green, blue and alpha.
//
// An alpha-premultiplied color component C has been scaled by alpha (A), so
// has valid values 0 <= C <= A.
type RGBA struct { type RGBA struct {
R, G, B, A uint8 R, G, B, A uint8
} }
...@@ -33,8 +39,11 @@ func (c RGBA) RGBA() (r, g, b, a uint32) { ...@@ -33,8 +39,11 @@ func (c RGBA) RGBA() (r, g, b, a uint32) {
return return
} }
// RGBA64 represents a 64-bit alpha-premultiplied color, // RGBA64 represents a 64-bit alpha-premultiplied color, having 16 bits for
// having 16 bits for each of red, green, blue and alpha. // each of red, green, blue and alpha.
//
// An alpha-premultiplied color component C has been scaled by alpha (A), so
// has valid values 0 <= C <= A.
type RGBA64 struct { type RGBA64 struct {
R, G, B, A uint16 R, G, B, A uint16
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment