View Javadoc

1   // Copyright 2002, FreeHEP.
2   package org.freehep.graphics2d;
3   
4   import java.awt.Color;
5   
6   /**
7    * WebColor which adheres to the web color set consisting of 216 equally spaced
8    * colors, which include black and white. The spacing is 0x33, which makes the
9    * smallest value 0x00 and the largest 0xFF. These colors are guaranteed to work
10   * in browsers without dithering. WebColors are opaque.
11   * 
12   * @author Mark Donszelmann
13   * @version $Id: WebColor.java 8584 2006-08-10 23:06:37Z duns $
14   */
15  public class WebColor extends Color {
16  
17      private final static int space = 0x33;
18  
19      private final static int space2 = space / 2;
20  
21      // redefine all java colors in terms of WebColors
22      public final static WebColor white = new WebColor(Color.WHITE);
23  
24      public final static WebColor WHITE = white;
25  
26      public final static WebColor lightGray = new WebColor(Color.LIGHT_GRAY);
27  
28      public final static WebColor LIGHT_GRAY = lightGray;
29  
30      public final static WebColor gray = new WebColor(Color.GRAY);
31  
32      public final static WebColor GRAY = gray;
33  
34      public final static WebColor darkGray = new WebColor(Color.DARK_GRAY);
35  
36      public final static WebColor DARK_GRAY = darkGray;
37  
38      public final static WebColor black = new WebColor(Color.BLACK);
39  
40      public final static WebColor BLACK = black;
41  
42      public final static WebColor red = new WebColor(Color.RED);
43  
44      public final static WebColor RED = red;
45  
46      public final static WebColor pink = new WebColor(Color.PINK);
47  
48      public final static WebColor PINK = pink;
49  
50      public final static WebColor orange = new WebColor(Color.ORANGE);
51  
52      public final static WebColor ORANGE = orange;
53  
54      public final static WebColor yellow = new WebColor(Color.YELLOW);
55  
56      public final static WebColor YELLOW = yellow;
57  
58      public final static WebColor green = new WebColor(Color.GREEN);
59  
60      public final static WebColor GREEN = green;
61  
62      public final static WebColor magenta = new WebColor(Color.MAGENTA);
63  
64      public final static WebColor MAGENTA = magenta;
65  
66      public final static WebColor cyan = new WebColor(Color.CYAN);
67  
68      public final static WebColor CYAN = cyan;
69  
70      public final static WebColor blue = new WebColor(Color.BLUE);
71  
72      public final static WebColor BLUE = blue;
73  
74      public WebColor(int red, int green, int blue) {
75          super(((red + space2) / space) * space, ((green + space2) / space)
76                  * space, ((blue + space2) / space) * space);
77      }
78  
79      public WebColor(Color color) {
80          this(color.getRed(), color.getGreen(), color.getBlue());
81      }
82  
83      public WebColor(float red, float green, float blue) {
84          this((int) (red * 255), (int) (green * 255), (int) (blue * 255));
85      }
86  
87      public static WebColor create(Color color) {
88          if (color == null)
89              return null;
90          if (color instanceof WebColor)
91              return (WebColor) color;
92          return new WebColor(color);
93      }
94  }