alphaComp returns a new color after compositing the two colors based on the foreground's alpha channel.
(bg, fg fcolor.RGBAF64)
| 377 | // alphaComp returns a new color after compositing the two colors |
| 378 | // based on the foreground's alpha channel. |
| 379 | func alphaComp(bg, fg fcolor.RGBAF64) fcolor.RGBAF64 { |
| 380 | fg.Clamp() |
| 381 | fga := fg.A |
| 382 | |
| 383 | r := (fg.R * fga / 1) + ((1 - fga) * bg.R / 1) |
| 384 | g := (fg.G * fga / 1) + ((1 - fga) * bg.G / 1) |
| 385 | b := (fg.B * fga / 1) + ((1 - fga) * bg.B / 1) |
| 386 | a := bg.A + fga |
| 387 | |
| 388 | return fcolor.RGBAF64{R: r, G: g, B: b, A: a} |
| 389 | } |
no test coverage detected