colors.go 388 B

12345678910111213141516171819202122
  1. package utils
  2. import (
  3. "fmt"
  4. )
  5. var _ = fmt.Print
  6. func RGBLuminance(r, g, b float32) float32 {
  7. // From ITU BT 601 https://www.itu.int/rec/R-REC-BT.601
  8. return 0.299*r + 0.587*g + 0.114*b
  9. }
  10. func RGBContrast(r1, g1, b1, r2, g2, b2 float32) float32 {
  11. al := RGBLuminance(r1, g1, b1)
  12. bl := RGBLuminance(r2, g2, b2)
  13. if al < bl {
  14. al, bl = bl, al
  15. }
  16. return (al + 0.05) / (bl + 0.05)
  17. }