From 46b959ff3cb7e87a16795893f06d6a4190c71a61 Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Thu, 29 Oct 2015 14:31:36 -0400 Subject: [PATCH] color reorg --- src/colors.jl | 108 +++++++++++--------------------------------------- 1 file changed, 23 insertions(+), 85 deletions(-) diff --git a/src/colors.jl b/src/colors.jl index 3c663393..88593ca1 100644 --- a/src/colors.jl +++ b/src/colors.jl @@ -1,88 +1,4 @@ -# note: I found this list of hex values in a comment by Tatarize here: http://stackoverflow.com/a/12224359 -const _masterColorList = [ - 0xFFFFFF, - 0x000000, - 0x0000FF, - 0x00FF00, - 0xFF0000, - 0x01FFFE, - 0xFFA6FE, - 0xFFDB66, - 0x006401, - 0x010067, - 0x95003A, - 0x007DB5, - 0xFF00F6, - 0xFFEEE8, - 0x774D00, - 0x90FB92, - 0x0076FF, - 0xD5FF00, - 0xFF937E, - 0x6A826C, - 0xFF029D, - 0xFE8900, - 0x7A4782, - 0x7E2DD2, - 0x85A900, - 0xFF0056, - 0xA42400, - 0x00AE7E, - 0x683D3B, - 0xBDC6FF, - 0x263400, - 0xBDD393, - 0x00B917, - 0x9E008E, - 0x001544, - 0xC28C9F, - 0xFF74A3, - 0x01D0FF, - 0x004754, - 0xE56FFE, - 0x788231, - 0x0E4CA1, - 0x91D0CB, - 0xBE9970, - 0x968AE8, - 0xBB8800, - 0x43002C, - 0xDEFF74, - 0x00FFC6, - 0xFFE502, - 0x620E00, - 0x008F9C, - 0x98FF52, - 0x7544B1, - 0xB500FF, - 0x00FF78, - 0xFF6E41, - 0x005F39, - 0x6B6882, - 0x5FAD4E, - 0xA75740, - 0xA5FFD2, - 0xFFB167, - 0x009BFF, - 0xE85EBE, -] - - -function darken(c, v=0.1) - rgba = convert(RGBA, c) - r = max(0, min(rgba.r - v, 1)) - g = max(0, min(rgba.g - v, 1)) - b = max(0, min(rgba.b - v, 1)) - RGBA(r,g,b,rgba.alpha) -end -function lighten(c, v=0.3) - darken(c, -v) -end - -# -------------------------------------------------------------- - - abstract ColorScheme getColor(scheme::ColorScheme) = getColor(scheme, 1) @@ -119,6 +35,19 @@ getColor(c) = convertColor(c) # -------------------------------------------------------------- +function darken(c, v=0.1) + rgba = convert(RGBA, c) + r = max(0, min(rgba.r - v, 1)) + g = max(0, min(rgba.g - v, 1)) + b = max(0, min(rgba.b - v, 1)) + RGBA(r,g,b,rgba.alpha) +end +function lighten(c, v=0.3) + darken(c, -v) +end + +# -------------------------------------------------------------- + const _rainbowColors = [colorant"blue", colorant"purple", colorant"green", colorant"orange", colorant"red"] const _testColors = [colorant"darkblue", colorant"blueviolet", colorant"darkcyan",colorant"green", darken(colorant"yellow",0.3), colorant"orange", darken(colorant"red",0.2)] @@ -286,6 +215,16 @@ function convertHexToRGB(h::Unsigned) RGB([(x & mask) / 0xFF for x in (h >> 16, h >> 8, h)]...) end +# note: I found this list of hex values in a comment by Tatarize here: http://stackoverflow.com/a/12224359 +const _masterColorList = [ + 0xFFFFFF, 0x000000, 0x0000FF, 0x00FF00, 0xFF0000, 0x01FFFE, 0xFFA6FE, 0xFFDB66, 0x006401, 0x010067, + 0x95003A, 0x007DB5, 0xFF00F6, 0xFFEEE8, 0x774D00, 0x90FB92, 0x0076FF, 0xD5FF00, 0xFF937E, 0x6A826C, + 0xFF029D, 0xFE8900, 0x7A4782, 0x7E2DD2, 0x85A900, 0xFF0056, 0xA42400, 0x00AE7E, 0x683D3B, 0xBDC6FF, + 0x263400, 0xBDD393, 0x00B917, 0x9E008E, 0x001544, 0xC28C9F, 0xFF74A3, 0x01D0FF, 0x004754, 0xE56FFE, + 0x788231, 0x0E4CA1, 0x91D0CB, 0xBE9970, 0x968AE8, 0xBB8800, 0x43002C, 0xDEFF74, 0x00FFC6, 0xFFE502, + 0x620E00, 0x008F9C, 0x98FF52, 0x7544B1, 0xB500FF, 0x00FF78, 0xFF6E41, 0x005F39, 0x6B6882, 0x5FAD4E, + 0xA75740, 0xA5FFD2, 0xFFB167, 0x009BFF, 0xE85EBE + ] const _allColors = map(convertHexToRGB, _masterColorList) const _darkColors = filter(isdark, _allColors) const _lightColors = filter(islight, _allColors) @@ -382,7 +321,6 @@ end # ---------------------------------------------------------------------------------- -# TODO: try to use the algorithms from https://github.com/timothyrenner/ColorBrewer.jl # TODO: allow the setting of the algorithm, either by passing a symbol (:colordiff, :fixed, etc) or a function? # function getBackgroundRGBColor(c, d::Dict)