Created
May 8, 2020 00:05
-
-
Save djsegal/cec7d0545842f6b18381369ba31c1ff9 to your computer and use it in GitHub Desktop.
Simple color parser for hex and HTML colors to RGB array
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| global_colors = Dict( | |
| "aliceblue" => [240, 248, 255], | |
| "antiquewhite" => [250, 235, 215], | |
| "aqua" => [0, 255, 255], | |
| "aquamarine" => [127, 255, 212], | |
| "azure" => [240, 255, 255], | |
| "beige" => [245, 245, 220], | |
| "bisque" => [255, 228, 196], | |
| "black" => [0, 0, 0], | |
| "blanchedalmond" => [255, 235, 205], | |
| "blue" => [0, 0, 255], | |
| "blueviolet" => [138, 43, 226], | |
| "brown" => [165, 42, 42], | |
| "burlywood" => [222, 184, 135], | |
| "cadetblue" => [95, 158, 160], | |
| "chartreuse" => [127, 255, 0], | |
| "chocolate" => [210, 105, 30], | |
| "coral" => [255, 127, 80], | |
| "cornflowerblue" => [100, 149, 237], | |
| "cornsilk" => [255, 248, 220], | |
| "crimson" => [220, 20, 60], | |
| "cyan" => [0, 255, 255], | |
| "darkblue" => [0, 0, 139], | |
| "darkcyan" => [0, 139, 139], | |
| "darkgoldenrod" => [184, 134, 11], | |
| "darkgray" => [169, 169, 169], | |
| "darkgreen" => [0, 100, 0], | |
| "darkgrey" => [169, 169, 169], | |
| "darkkhaki" => [189, 183, 107], | |
| "darkmagenta" => [139, 0, 139], | |
| "darkolivegreen" => [85, 107, 47], | |
| "darkorange" => [255, 140, 0], | |
| "darkorchid" => [153, 50, 204], | |
| "darkred" => [139, 0, 0], | |
| "darksalmon" => [233, 150, 122], | |
| "darkseagreen" => [143, 188, 143], | |
| "darkslateblue" => [72, 61, 139], | |
| "darkslategray" => [47, 79, 79], | |
| "darkslategrey" => [47, 79, 79], | |
| "darkturquoise" => [0, 206, 209], | |
| "darkviolet" => [148, 0, 211], | |
| "deeppink" => [255, 20, 147], | |
| "deepskyblue" => [0, 191, 255], | |
| "dimgray" => [105, 105, 105], | |
| "dimgrey" => [105, 105, 105], | |
| "dodgerblue" => [30, 144, 255], | |
| "firebrick" => [178, 34, 34], | |
| "floralwhite" => [255, 250, 240], | |
| "forestgreen" => [34, 139, 34], | |
| "fuchsia" => [255, 0, 255], | |
| "gainsboro" => [220, 220, 220], | |
| "ghostwhite" => [248, 248, 255], | |
| "gold" => [255, 215, 0], | |
| "goldenrod" => [218, 165, 32], | |
| "gray" => [128, 128, 128], | |
| "green" => [0, 128, 0], | |
| "greenyellow" => [173, 255, 47], | |
| "grey" => [128, 128, 128], | |
| "honeydew" => [240, 255, 240], | |
| "hotpink" => [255, 105, 180], | |
| "indianred" => [205, 92, 92], | |
| "indigo" => [75, 0, 130], | |
| "ivory" => [255, 255, 240], | |
| "khaki" => [240, 230, 140], | |
| "lavender" => [230, 230, 250], | |
| "lavenderblush" => [255, 240, 245], | |
| "lawngreen" => [124, 252, 0], | |
| "lemonchiffon" => [255, 250, 205], | |
| "lightblue" => [173, 216, 230], | |
| "lightcoral" => [240, 128, 128], | |
| "lightcyan" => [224, 255, 255], | |
| "lightgoldenrodyellow" => [250, 250, 210], | |
| "lightgray" => [211, 211, 211], | |
| "lightgreen" => [144, 238, 144], | |
| "lightgrey" => [211, 211, 211], | |
| "lightpink" => [255, 182, 193], | |
| "lightsalmon" => [255, 160, 122], | |
| "lightseagreen" => [32, 178, 170], | |
| "lightskyblue" => [135, 206, 250], | |
| "lightslategray" => [119, 136, 153], | |
| "lightslategrey" => [119, 136, 153], | |
| "lightsteelblue" => [176, 196, 222], | |
| "lightyellow" => [255, 255, 224], | |
| "lime" => [0, 255, 0], | |
| "limegreen" => [50, 205, 50], | |
| "linen" => [250, 240, 230], | |
| "magenta" => [255, 0, 255], | |
| "maroon" => [128, 0, 0], | |
| "mediumaquamarine" => [102, 205, 170], | |
| "mediumblue" => [0, 0, 205], | |
| "mediumorchid" => [186, 85, 211], | |
| "mediumpurple" => [147, 112, 219], | |
| "mediumseagreen" => [60, 179, 113], | |
| "mediumslateblue" => [123, 104, 238], | |
| "mediumspringgreen" => [0, 250, 154], | |
| "mediumturquoise" => [72, 209, 204], | |
| "mediumvioletred" => [199, 21, 133], | |
| "midnightblue" => [25, 25, 112], | |
| "mintcream" => [245, 255, 250], | |
| "mistyrose" => [255, 228, 225], | |
| "moccasin" => [255, 228, 181], | |
| "navajowhite" => [255, 222, 173], | |
| "navy" => [0, 0, 128], | |
| "oldlace" => [253, 245, 230], | |
| "olive" => [128, 128, 0], | |
| "olivedrab" => [107, 142, 35], | |
| "orange" => [255, 165, 0], | |
| "orangered" => [255, 69, 0], | |
| "orchid" => [218, 112, 214], | |
| "palegoldenrod" => [238, 232, 170], | |
| "palegreen" => [152, 251, 152], | |
| "paleturquoise" => [175, 238, 238], | |
| "palevioletred" => [219, 112, 147], | |
| "papayawhip" => [255, 239, 213], | |
| "peachpuff" => [255, 218, 185], | |
| "peru" => [205, 133, 63], | |
| "pink" => [255, 192, 203], | |
| "plum" => [221, 160, 221], | |
| "powderblue" => [176, 224, 230], | |
| "purple" => [128, 0, 128], | |
| "red" => [255, 0, 0], | |
| "rosybrown" => [188, 143, 143], | |
| "royalblue" => [65, 105, 225], | |
| "saddlebrown" => [139, 69, 19], | |
| "salmon" => [250, 128, 114], | |
| "sandybrown" => [244, 164, 96], | |
| "seagreen" => [46, 139, 87], | |
| "seashell" => [255, 245, 238], | |
| "sienna" => [160, 82, 45], | |
| "silver" => [192, 192, 192], | |
| "skyblue" => [135, 206, 235], | |
| "slateblue" => [106, 90, 205], | |
| "slategray" => [112, 128, 144], | |
| "slategrey" => [112, 128, 144], | |
| "snow" => [255, 250, 250], | |
| "springgreen" => [0, 255, 127], | |
| "steelblue" => [70, 130, 180], | |
| "tan" => [210, 180, 140], | |
| "teal" => [0, 128, 128], | |
| "thistle" => [216, 191, 216], | |
| "tomato" => [255, 99, 71], | |
| "turquoise" => [64, 224, 208], | |
| "violet" => [238, 130, 238], | |
| "wheat" => [245, 222, 179], | |
| "white" => [255, 255, 255], | |
| "whitesmoke" => [245, 245, 245], | |
| "yellow" => [255, 255, 0], | |
| "yellowgreen" => [154, 205, 50], | |
| "rebeccapurple" => [102, 51, 153] | |
| ) | |
| function parse_rgb(cur_color) | |
| if startswith(cur_color, "#") | |
| hex_color = lstrip(cur_color, '#') | |
| ( length(hex_color) == 3 ) && ( hex_color ^= 2 ) | |
| split_hex = [ hex_color[(2*cur_color) .+ (1:2)] for cur_color in 0:2 ] | |
| return parse.(Int, split_hex, base=16) | |
| end | |
| ( cur_color in global_colors ) || return cur_color | |
| global_colors[cur_color] | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment