XYZ.fromHex constructor

XYZ.fromHex(
  1. String hex
)

Implementation

XYZ.fromHex(String hex) {
  final values = hex.replaceAll('#', '').split('');

  double _r =
      int.parse(values[0].toString() + values[1].toString(), radix: 16) / 255;
  double _g =
      int.parse(values[2].toString() + values[3].toString(), radix: 16) / 255;
  double _b =
      int.parse(values[4].toString() + values[5].toString(), radix: 16) / 255;

  _r = _r <= 0.04045 ? _r / 12.92 : pow((_r + 0.055) / 1.055, 2.4) as double;
  _g = _g <= 0.04045 ? _g / 12.92 : pow((_g + 0.055) / 1.055, 2.4) as double;
  _b = _b <= 0.04045 ? _b / 12.92 : pow((_b + 0.055) / 1.055, 2.4) as double;

  x = (0.4124 * _r + 0.3576 * _g + 0.1805 * _b) * 100;
  y = (0.2126 * _r + 0.7152 * _g + 0.0722 * _b) * 100;
  z = (0.0193 * _r + 0.1192 * _g + 0.9505 * _b) * 100;
}