Skip to content

Instantly share code, notes, and snippets.

@djsegal
Created May 8, 2020 00:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save djsegal/cec7d0545842f6b18381369ba31c1ff9 to your computer and use it in GitHub Desktop.
Save djsegal/cec7d0545842f6b18381369ba31c1ff9 to your computer and use it in GitHub Desktop.
Simple color parser for hex and HTML colors to RGB array
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