hueRotate method

ContainerBuilder hueRotate(
  1. double degrees
)

Implementation

ContainerBuilder hueRotate(double degrees) {
  final radians = degrees * 3.14159265359 / 180.0;
  final cos = (radians).cos();
  final sin = (radians).sin();
  final lumR = 0.213;
  final lumG = 0.715;
  final lumB = 0.072;
  return colorFilter(ColorFilter.matrix([
    lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,
    lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (lumG), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,
    lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,
    0, 0, 0, 1, 0,
  ]));
}