rgba() color parsing now uses a float in range 0.0-1.0 for the alpha component
This commit is contained in:
parent
0c528ecc87
commit
364c8706b6
1 changed files with 5 additions and 3 deletions
8
color.go
8
color.go
|
@ -199,14 +199,16 @@ func parseColor(value ...interface{}) (c color.RGBA, ok bool) {
|
|||
}
|
||||
} else {
|
||||
v = strings.Replace(v, " ", "", -1)
|
||||
var ir, ig, ib, ia int
|
||||
var ir, ig, ib int
|
||||
n, err := fmt.Sscanf(v, "rgb(%d,%d,%d)", &ir, &ig, &ib)
|
||||
if err == nil && n == 3 {
|
||||
return color.RGBA{R: uint8(ir), G: uint8(ig), B: uint8(ib), A: 255}, true
|
||||
}
|
||||
n, err = fmt.Sscanf(v, "rgba(%d,%d,%d,%d)", &ir, &ig, &ib, &ia)
|
||||
var fa float64
|
||||
n, err = fmt.Sscanf(v, "rgba(%d,%d,%d,%f)", &ir, &ig, &ib, &fa)
|
||||
fa = math.Max(0, math.Min(1, fa))
|
||||
if err == nil && n == 4 {
|
||||
return color.RGBA{R: uint8(ir), G: uint8(ig), B: uint8(ib), A: uint8(ia)}, true
|
||||
return color.RGBA{R: uint8(ir), G: uint8(ig), B: uint8(ib), A: uint8(fa * 255)}, true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue