rgbToCmyk static method

CmykColor rgbToCmyk(
  1. RgbColor rgbColor
)

Converts a RGB color to a CMYK color.

Implementation

static CmykColor rgbToCmyk(RgbColor rgbColor) {
  final rgb = rgbColor.toFactoredList();

  final cmy = rgb.map((rgbValue) => 1 - rgbValue).toList();
  final k = cmy.reduce(math.min).clamp(0.0, 1.0);
  final alpha = rgbColor.alpha / 255;

  final cmyk = cmy
      .map((cmyValue) => ((cmyValue - k) / (1 - k)).clamp(0.0, 1.0))
      .toList()
    ..add(k)
    ..add(alpha);

  return CmykColor.extrapolate(List<double>.from(cmyk));
}