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 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