returns a hex string
String rgb2hex(List<num> rgb) => rgb.fold('#', (hex, c) => hex + _padHex(c.round().toRadixString(16)));