
A color conversion library for Dart.
It converts all ways between rgb, hsl, hsv, hwb, cmyk, ansi, ansi16, hex strings, and CSS keywords (will round to closest).
Based on color-convert by Heather Arthur.
import 'package:color_convert/color_convert.dart';
void main() {
convert.rgb.hsl(140, 200, 100); // [96, 48, 59]
convert.keyword.rgb('blue'); // [0, 0, 255]
var rgbChannels = convert.rgb.channels; // 3
var cmykChannels = convert.cmyk.channels; // 4
var ansiChannels = convert.ansi16.channels; // 1
}
Simply get the property of the from and to conversion that you're looking for.
All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on .raw to the function.
All 'from' functions have a hidden property called .channels that indicates the number of channels the function expects (not including alpha).
import 'package:color_convert/color_convert.dart';
void main() {
// Hex to LAB
convert.hex.lab('DEADBF'); // [ 76, 21, -2 ]
convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ]
// RGB to CMYK
convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ]
convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ]
}
All functions that accept multiple arguments also support passing an array.
Note that this does not apply to functions that convert from a color that only requires one value (e.g. keyword, ansi256, hex, etc.)
import 'package:color_convert/color_convert.dart';
void main() {
convert.rgb.hex(123, 45, 67); // '7B2D43'
convert.rgb.hex([123, 45, 67]); // '7B2D43'
}
Conversions rely on an agreed upon 'full-scale' value for each of the channels. Listed here are those values for the most common color spaces
| channel |
full-scale value |
| r |
255 |
| g |
255 |
| b |
255 |
| channel |
full-scale value |
| h |
360 |
| s |
100 |
| l |
100 |
| channel |
full-scale value |
| h |
360 |
| s |
100 |
| v |
100 |
| channel |
full-scale value |
| h |
360 |
| w |
100 |
| b |
100 |
| channel |
full-scale value |
| c |
100 |
| m |
100 |
| y |
100 |
| k |
100 |
| channel |
full-scale value |
| hex |
0xffffff |
| channel |
full-scale value |
| 0 |
65535 |
| 1 |
65535 |
| 2 |
65535 |
| channel |
full-scale value |
| g |
100 |
MIT License.