ColorFilter.saturation constructor

ColorFilter.saturation(
  1. double saturation
)

Creates a color filter that applies the given saturation to the RGB channels.

Implementation

factory ColorFilter.saturation(double saturation) {
  const rLuminance = 0.2126;
  const gLuminance = 0.7152;
  const bLuminance = 0.0722;
  final double invSat = 1 - saturation;

  return ColorFilter.matrix(<double>[
    // dart format off
    invSat * rLuminance + saturation, invSat * gLuminance,              invSat * bLuminance,              0, 0,
    invSat * rLuminance,              invSat * gLuminance + saturation, invSat * bLuminance,              0, 0,
    invSat * rLuminance,              invSat * gLuminance,              invSat * bLuminance + saturation, 0, 0,
    0,                                0,                                0,                                1, 0,
    // dart format on
  ]);
}