Mega Code Archive

 
Categories / Java / 2D Graphics GUI
 

Color Schema Generator

/*  * To change this template, choose Tools | Templates  * and open the template in the editor.  */ // Revised from jaspersoft ireport designer import java.awt.Color; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /**  *  * @author gtoffoli  */ public class ColorSchemaGenerator {     public final static String SCHEMA_DEFAULT = "default";     public final static String SCHEMA_PASTEL = "pastel";     public final static String SCHEMA_SOFT = "soft";     public final static String SCHEMA_HARD = "hard";     public final static String SCHEMA_LIGHT = "light";     public final static String SCHEMA_PALE = "pale";          private static float[] schema_default = new float[]{ -1f,-1f, 1f,-0.7f, 0.25f,1f, 0.5f,1f };     private static float[] schema_pastel = new float[]{ 0.5f,-0.9f, 0.5f,0.5f, 0.1f,0.9f, 0.75f,0.75f };     private static float[] schema_soft = new float[]{ 0.3f,-0.8f, 0.3f,0.5f, 0.1f,0.9f, 0.5f,0.75f };     private static float[] schema_hard = new float[]{ 1f,-1f, 1f,-0.6f, 0.1f,1f, 0.6f,1f };     private static float[] schema_light = new float[]{ 0.25f,1f, 0.5f,0.75f, 0.1f,1f, 0.5f,1f };     private static float[] schema_pale = new float[]{ 0.1f,-0.85f, 0.1f,0.5f, 0.1f,1f, 0.1f,0.75f };          private static java.util.Map<String, float[]> schemas = new HashMap<String, float[]>();          static {                  schemas.put(SCHEMA_DEFAULT, schema_default);         schemas.put(SCHEMA_PASTEL, schema_pastel);         schemas.put(SCHEMA_SOFT, schema_soft);         schemas.put(SCHEMA_HARD, schema_hard);         schemas.put(SCHEMA_LIGHT, schema_light);         schemas.put(SCHEMA_PALE, schema_pale);              }          /**      * Create the schema color.      *       * @param base      * @param i (a color between 0 and 3)      * @param schemaName      * @return      */     public static Color createColor(Color base, int i, String schemaName)     {                  i = Math.abs(i %= 3);          if (schemaName == null) schemaName = SCHEMA_SOFT;         float[] schema = schemas.get(schemaName);                  float[] components = Color.RGBtoHSB(base.getRed(), base.getGreen(), base.getBlue(), null);            components[1] = (schema[i*2] < 0) ? -schema[i*2] * components[1] : schema[i*2];         if (components[1] > 1) components[1] = 1.0f;         if (components[1] < 0) components[1] = 0;                           components[2] = (schema[i*2+1] < 0) ? -schema[i*2+1] * components[2] : schema[i*2+1];         if (components[2] > 1) components[2] = 1.0f;         if (components[2] < 0) components[2] = 0;                  return new Color( Color.HSBtoRGB(components[0], components[1], components[2]));     }          public static List<String> getColors()     {         if (colorsList == null)         {             colorsList = new ArrayList<String>();             colorsMap = new HashMap<String,String>();                          for (int i=0; i<colors.length/2; ++i)             {                 colorsList.add( colors[i*2] );                 colorsMap.put(colors[i*2], colors[(i*2)+1]);             }         }                  return colorsList;     }          public static Color getColor(String name)     {         if (colorsMap == null)         {             getColors();         }         String rgb = colorsMap.get(name);         return decodeColor("#"+rgb);     }               public static java.awt.Color decodeColor(String colorString)     {         java.awt.Color color = null;         char firstChar = colorString.charAt(0);         if (firstChar == '#')         {                color = new java.awt.Color(Integer.parseInt(colorString.substring(1), 16));         }         else if ('0' <= firstChar && firstChar <= '9')         {                color = new java.awt.Color(Integer.parseInt(colorString));         }         else         {                color = java.awt.Color.black;         }         return color;     }               static private List<String> colorsList = null;     static private HashMap<String, String> colorsMap = null;          static private String[] colors = new String[]{             "Aliceblue","F0F8FF",             "Antiquewhite","FAEBD7",             "Aqua","00FFFF",             "Aquamarine","7FFFD4",             "Azure","F0FFFF",             "Beige","F5F5DC",             "Bisque","FFE4C4",             "Black","000000",             "Blanchedalmond","FFEBCD",             "Blue","0000FF",             "Blueviolet","8A2BE2",             "Brown","A52A2A",             "Burlywood","DEB887",             "Cadetblue","5F9EA0",             "Chartreuse","7FFF00",             "Chocolate","D2691E",             "Coral","FF7F50",             "Cornflowerblue","6495ED",             "Cornsilk","FFF8DC",             "Crimson","DC143C",             "Cyan","00FFFF",             "Darkblue","00008B",             "Darkcyan","008B8B",             "Darkgoldenrod","B8860B",             "Darkgray","A9A9A9",             "Darkgreen","006400",             "Darkkhaki","BDB76B",             "Darkmagenta","8B008B",             "Darkolivegreen","556B2F",             "Darkorange","FF8C00",             "Darkorchid","9932CC",             "Darkred","8B0000",             "Darksalmon","E9967A",             "Darkseagreen","8FBC8F",             "Darkslateblue","483D8B",             "Darkturqoise","00CED1",             "Darkslategray","2F4F4F",             "Darkviolet","9400D3",             "Deeppink","FF1493",             "Deepskyblue","00BFFF",             "Dimgray","696969",             "Dodgerblue","1E90FF",             "Firebrick","B22222",             "Floralwhite","FFFAF0",             "Forestgreen","228B22",             "Fuchsia","FF00FF",             "Gainsboro","DCDCDC",             "Ghostwhite","F8F8FF",             "Gold","FFD700",             "Goldenrod","DAA520",             "Gray","808080",             "Green","008000",             "Greenyellow","ADFF2F",             "Honeydew","F0FFF0",             "Hotpink","FF69B4",             "Indianred","CD5C5C",             "Indigo","4B0082",             "Ivory","FFFFF0",             "Khaki","F0E68C",             "Lavender","E6E6FA",             "Lavenderblush","FFF0F5",             "Lawngreen","7CFC00",             "Lemonchiffon","FFFACD",             "Lightblue","ADD8E6",             "Lightcoral","F08080",             "Lightcyan","E0FFFF",             "Lightgoldenrodyellow","FAFAD2",             "Lightgreen","90EE90",             "Lightgrey","D3D3D3",             "Lightpink","FFB6C1",             "Lightsalmon","FFA07A",             "Lightseagreen","20B2AA",             "Lightskyblue","87CEFA",             "Lightslategray","778899",             "Lisghtsteelblue","B0C4DE",             "Lightyellow","FFFFE0",             "Lime","00FF00",             "Limegreen","32CD32",             "Linen","FAF0E6",             "Magenta","FF00FF",             "Maroon","800000",             "Mediumaquamarine","66CDAA",             "Mediumblue","0000CD",             "Mediumorchid","BA55D3",             "Mediumpurple","9370DB",             "Mediumseagreen","3CB371",             "Mediumslateblue","7B68EE",             "Mediumspringgreen","00FA9A",             "Mediumturquoise","48D1CC",             "Mediumvioletred","C71585",             "Midnightblue","191970",             "Mintcream","F5FFFA",             "Mistyrose","FFE4E1",             "Moccasin","FFE4B5",             "Navajowhite","FFDEAD",             "Navy","000080",             "Navyblue","9FAFDF",             "Oldlace","FDF5E6",             "Olive","808000",             "Olivedrab","6B8E23",             "Orange","FFA500",             "Orangered","FF4500",             "Orchid","DA70D6",             "Palegoldenrod","EEE8AA",             "Palegreen","98FB98",             "Paleturquoise","AFEEEE",             "Palevioletred","DB7093",             "Papayawhip","FFEFD5",             "Peachpuff","FFDAB9",             "Peru","CD853F",             "Pink","FFC0CB",             "Plum","DDA0DD",             "Powderblue","B0E0E6",             "Purple","800080",             "Red","FF0000",             "Rosybrown","BC8F8F",             "Royalblue","4169E1",             "Saddlebrown","8B4513",             "Salmon","FA8072",             "Sandybrown","F4A460",             "Seagreen","2E8B57",             "Seashell","FFF5EE",             "Sienna","A0522D",             "Silver","C0C0C0",             "Skyblue","87CEEB",             "Slateblue","6A5ACD",             "Snow","FFFAFA",             "Springgreen","00FF7F",             "Steelblue","4682B4",             "Tan","D2B48C",             "Teal","008080",             "Thistle","D8BFD8",             "Tomato","FF6347",             "Turquoise","40E0D0",             "Violet","EE82EE",             "Wheat","F5DEB3",             "White","FFFFFF",             "Whitesmoke","F5F5F5",             "Yellow","FFFF00",             "Yellowgreen","9ACD32"};      }