toCielabColor method

  1. @override
CielabColor toCielabColor()
override

Implementation

@override
CielabColor toCielabColor() {
  var lab = <String, num>{};
  var xyz = <String, num>{};

  toMap().forEach((String key, num value) {
    value /= referenceWhite[key];

    if (value > 0.008856) {
      value = pow(value, 1 / 3);
    } else {
      value = (7.787 * value) + 16 / 116;
    }
    xyz[key] = value;
  });

  lab['l'] = (116 * xyz['y']!) - 16;
  lab['a'] = 500 * (xyz['x']! - xyz['y']!);
  lab['b'] = 200 * (xyz['y']! - xyz['z']!);

  return CielabColor(lab['l']!, lab['a']!, lab['b']!);
}