(color: RGBA, bg: RGBA)
| 173 | } |
| 174 | |
| 175 | function blend(color: RGBA, bg: RGBA): RGBA { |
| 176 | if (color.a >= 1) { |
| 177 | return color |
| 178 | } |
| 179 | |
| 180 | return RGBA.fromValues( |
| 181 | bg.r + (color.r - bg.r) * color.a, |
| 182 | bg.g + (color.g - bg.g) * color.a, |
| 183 | bg.b + (color.b - bg.b) * color.a, |
| 184 | 1, |
| 185 | ) |
| 186 | } |
| 187 | |
| 188 | function chroma(color: RGBA) { |
| 189 | return Math.max(color.r, color.g, color.b) - Math.min(color.r, color.g, color.b) |