001/******************************************************************************* 002 * This software is provided as a supplement to the authors' textbooks on digital 003 * image processing published by Springer-Verlag in various languages and editions. 004 * Permission to use and distribute this software is granted under the BSD 2-Clause 005 * "Simplified" License (see http://opensource.org/licenses/BSD-2-Clause). 006 * Copyright (c) 2006-2016 Wilhelm Burger, Mark J. Burge. All rights reserved. 007 * Visit http://imagingbook.com for additional details. 008 *******************************************************************************/ 009 010package imagingbook.lib.color; 011 012import java.awt.*; 013 014public enum CssColor { 015 AliceBlue(0xF0, 0xF8, 0xFF), 016 AntiqueWhite(0xFA, 0xEB, 0xD7), 017 Aqua(0x00, 0xFF, 0xFF), 018 AquaMarine(0x7F, 0xFF, 0xD4), 019 Azure(0xF0, 0xFF, 0xFF), 020 Beige(0xF5, 0xF5, 0xDC), 021 Bisque(0xFF, 0xE4, 0xC4), 022 Black(0x00, 0x00, 0x00), 023 BlanchedAlmond(0xFF, 0xEB, 0xCD), 024 Blue(0x00, 0x00, 0xFF), 025 BlueViolet(0x8A, 0x2B, 0xE2), 026 Brown(0xA5, 0x2A, 0x2A), 027 BurlyWood(0xDE, 0xB8, 0x87), 028 CadetBlue(0x5F, 0x9E, 0xA0), 029 Chartreuse(0x7F, 0xFF, 0x00), 030 Chocolate(0xD2, 0x69, 0x1E), 031 Coral(0xFF, 0x7F, 0x50), 032 CornFlowerBlue(0x64, 0x95, 0xED), 033 CornSilk(0xFF, 0xF8, 0xDC), 034 Crimson (0xDC, 0x14, 0x3C), 035 Cyan(0x00, 0xFF, 0xFF), 036 DarkBlue(0x00, 0x00, 0x8B), 037 DarkCyan(0x00, 0x8B, 0x8B), 038 DarkGoldenRod(0xB8, 0x86, 0x0B), 039 DarkGray(0xA9, 0xA9, 0xA9), 040 DarkGreen(0x00, 0x64, 0x00), 041 DarkKhaki(0xBD, 0xB7, 0x6B), 042 DarkMagenta(0x8B, 0x00, 0x8B), 043 DarkOliveGreen(0x55, 0x6B, 0x2F), 044 DarkOrange(0xFF, 0x8C, 0x00), 045 DarkOrchid(0x99, 0x32, 0xCC), 046 DarkRed(0x8B, 0x00, 0x00), 047 DarkSalmon(0xE9, 0x96, 0x7A), 048 DarkSeaGreen(0x8F, 0xBC, 0x8F), 049 DarkSlateBlue(0x48, 0x3D, 0x8B), 050 DarkSlateGray(0x2F, 0x4F, 0x4F), 051 DarkTurquoise(0x00, 0xCE, 0xD1), 052 DarkViolet(0x94, 0x00, 0xD3), 053 DeepPink(0xFF, 0x14, 0x93), 054 DeepSkyBlue(0x00, 0xBF, 0xFF), 055 DimGray(0x69, 0x69, 0x69), 056 DodgerBlue(0x1E, 0x90, 0xFF), 057 FireBrick(0xB2, 0x22, 0x22), 058 FloralWhite(0xFF, 0xFA, 0xF0), 059 ForestGreen(0x22, 0x8B, 0x22), 060 Fuchsia(0xFF, 0x00, 0xFF), 061 Gainsboro(0xDC, 0xDC, 0xDC), 062 GhostWhite(0xF8, 0xF8, 0xFF), 063 Gold(0xFF, 0xD7, 0x00), 064 GoldenRod(0xDA, 0xA5, 0x20), 065 Gray(0x80, 0x80, 0x80), 066 Green(0x00, 0x80, 0x00), 067 GreenYellow(0xAD, 0xFF, 0x2F), 068 HoneyDew(0xF0, 0xFF, 0xF0), 069 HotPink(0xFF, 0x69, 0xB4), 070 IndianRed(0xCD, 0x5C, 0x5C), 071 Indigo(0x4B, 0x00, 0x82), 072 Ivory(0xFF, 0xFF, 0xF0), 073 Khaki(0xF0, 0xE6, 0x8C), 074 Lavender(0xE6, 0xE6, 0xFA), 075 LavenderBlush(0xFF, 0xF0, 0xF5), 076 LawnGreen(0x7C, 0xFC, 0x00), 077 LemonChiffon(0xFF, 0xFA, 0xCD), 078 LightBlue(0xAD, 0xD8, 0xE6), 079 LightCoral(0xF0, 0x80, 0x80), 080 LightCyan(0xE0, 0xFF, 0xFF), 081 LightGoldenRodYellow(0xFA, 0xFA, 0xD2), 082 LightGreen(0x90, 0xEE, 0x90), 083 LightGray(0xD3, 0xD3, 0xD3), 084 LightPink(0xFF, 0xB6, 0xC1), 085 LightSalmon(0xFF, 0xA0, 0x7A), 086 LightSeaGreen(0x20, 0xB2, 0xAA), 087 LightSkyBlue(0x87, 0xCE, 0xFA), 088 LightSlateGray(0x77, 0x88, 0x99), 089 LightSteelBlue(0xB0, 0xC4, 0xDE), 090 LightYellow(0xFF, 0xFF, 0xE0), 091 Lime(0x00, 0xFF, 0x00), 092 LimeGreen(0x32, 0xCD, 0x32), 093 Linen(0xFA, 0xF0, 0xE6), 094 Magenta(0xFF, 0x00, 0xFF), 095 Maroon(0x80, 0x00, 0x00), 096 MediumAquaMarine(0x66, 0xCD, 0xAA), 097 MediumBlue(0x00, 0x00, 0xCD), 098 MediumOrchid(0xBA, 0x55, 0xD3), 099 MediumPurple(0x93, 0x70, 0xDB), 100 MediumSeaGreen(0x3C, 0xB3, 0x71), 101 MediumSlateBlue(0x7B, 0x68, 0xEE), 102 MediumSpringGreen(0x00, 0xFA, 0x9A), 103 MediumTurquoise(0x48, 0xD1, 0xCC), 104 MediumVioletRed(0xC7, 0x15, 0x85), 105 MidnightBlue(0x19, 0x19, 0x70), 106 MintCream(0xF5, 0xFF, 0xFA), 107 MistyRose(0xFF, 0xE4, 0xE1), 108 Moccasin(0xFF, 0xE4, 0xB5), 109 NavajoWhite(0xFF, 0xDE, 0xAD), 110 Navy(0x00, 0x00, 0x80), 111 OldLace(0xFD, 0xF5, 0xE6), 112 Olive(0x80, 0x80, 0x00), 113 OliveDrab(0x6B, 0x8E, 0x23), 114 Orange(0xFF, 0xA5, 0x00), 115 OrangeRed(0xFF, 0x45, 0x00), 116 Orchid(0xDA, 0x70, 0xD6), 117 PaleGoldenRod(0xEE, 0xE8, 0xAA), 118 PaleGreen(0x98, 0xFB, 0x98), 119 PaleTurquoise(0xAF, 0xEE, 0xEE), 120 PaleVioletRed(0xDB, 0x70, 0x93), 121 PapayaWhip(0xFF, 0xEF, 0xD5), 122 PeachPuff(0xFF, 0xDA, 0xB9), 123 Peru(0xCD, 0x85, 0x3F), 124 Pink(0xFF, 0xC0, 0xCB), 125 Plum(0xDD, 0xA0, 0xDD), 126 PowderBlue(0xB0, 0xE0, 0xE6), 127 Purple(0x80, 0x00, 0x80), 128 Red(0xFF, 0x00, 0x00), 129 RosyBrown(0xBC, 0x8F, 0x8F), 130 RoyalBlue(0x41, 0x69, 0xE1), 131 SaddleBrown(0x8B, 0x45, 0x13), 132 Salmon(0xFA, 0x80, 0x72), 133 SandyBrown(0xF4, 0xA4, 0x60), 134 SeaGreen(0x2E, 0x8B, 0x57), 135 SeaShell(0xFF, 0xF5, 0xEE), 136 Sienna(0xA0, 0x52, 0x2D), 137 Silver(0xC0, 0xC0, 0xC0), 138 SkyBlue(0x87, 0xCE, 0xEB), 139 SlateBlue(0x6A, 0x5A, 0xCD), 140 SlateGray(0x70, 0x80, 0x90), 141 Snow(0xFF, 0xFA, 0xFA), 142 SpringGreen(0x00, 0xFF, 0x7F), 143 SteelBlue(0x46, 0x82, 0xB4), 144 Tan(0xD2, 0xB4, 0x8C), 145 Teal(0x00, 0x80, 0x80), 146 Thistle(0xD8, 0xBF, 0xD8), 147 Tomato(0xFF, 0x63, 0x47), 148 Turquoise(0x40, 0xE0, 0xD0), 149 Violet(0xEE, 0x82, 0xEE), 150 Wheat(0xF5, 0xDE, 0xB3), 151 White(0xFF, 0xFF, 0xFF), 152 WhiteSmoke(0xF5, 0xF5, 0xF5), 153 Yellow(0xFF, 0xFF, 0x00), 154 YellowGreen(0x9A, 0xCD, 0x32); 155 156 private final int r, g, b; 157 158 CssColor(int r, int g, int b) { 159 this.r = r; 160 this.g = g; 161 this.b = b; 162 } 163 164 public int getRed() { 165 return r; 166 } 167 168 public int getGreen() { 169 return g; 170 } 171 172 public int getBlue() { 173 return b; 174 } 175 176 public Color getColor() { 177 return new Color(r, g, b); 178 } 179 180 public int getRGB() { 181 return getColor().getRGB(); 182 } 183 184 public String getRGBString() { 185 /* 186 * toHexString will return "0" instead of "00" String.format will not 187 * 0-pad Strings or Hex Have to do it manually... 188 */ 189 return String.format("#%s%s%s", 190 (r < 0x10 ? "0" : "") + Integer.toHexString(r), (g < 0x10 ? "0" 191 : "") + Integer.toHexString(g), (b < 0x10 ? "0" : "") 192 + Integer.toHexString(b)); 193 } 194 195 // Added by wilbur: 196 public static Color[] getColors(CssColor ... wcols) { 197 Color[] rgbColors = new Color[wcols.length]; 198 for (int i=0; i<wcols.length; i++) { 199 rgbColors[i] = wcols[i].getColor(); 200 } 201 return rgbColors; 202 } 203 204 public static final Color[] PreferredColors = 205 getColors( 206 MediumBlue, 207 Crimson, 208 MediumSeaGreen, 209 BlueViolet, 210 Tomato, 211 CornFlowerBlue, 212 DeepPink, 213 YellowGreen, 214 Magenta, 215 //OliveDrab, 216 217 DarkCyan 218 ); 219}