HSL.fromHex constructor
HSL.fromHex(
- String hex
Implementation
HSL.fromHex(String hex) {
final values = hex.replaceAll('#', '').split('');
final _r =
int.parse(values[0].toString() + values[1].toString(), radix: 16) / 255;
final _g =
int.parse(values[2].toString() + values[3].toString(), radix: 16) / 255;
final _b =
int.parse(values[4].toString() + values[5].toString(), radix: 16) / 255;
final maxN = max(_r, max(_g, _b));
final minN = min(_r, min(_g, _b));
final _l = (maxN + minN) / 2;
double _h = 0, _s = 0;
if (maxN == minN) {
_h = _s = 0;
} else {
final _d = maxN - minN;
_s = _l > 0.5 ? _d / (2 - maxN - minN) : _d / (maxN + minN);
if (maxN == _r) {
_h = (_g - _b) / _d + (_g < _b ? 6 : 0);
} else if (maxN == _g) {
_h = (_b - _r) / _d + 2;
} else if (maxN == _b) {
_h = (_r - _g) / _d + 4;
}
_h = _h * 6;
}
h = (_h * 100).roundToDouble() / 10;
s = (_s * 1000).roundToDouble() / 10;
l = (_l * 1000).roundToDouble() / 10;
}