home *** CD-ROM | disk | FTP | other *** search
/ PC User 1998 October / Image.iso / BROWSER / CLASSES.ZIP / JAVA / AWT / Color.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  3.2 KB  |  205 lines

  1. package java.awt;
  2.  
  3. public final class Color {
  4.    public static final Color white = new Color(255, 255, 255);
  5.    public static final Color lightGray = new Color(192, 192, 192);
  6.    public static final Color gray = new Color(128, 128, 128);
  7.    public static final Color darkGray = new Color(64, 64, 64);
  8.    public static final Color black = new Color(0, 0, 0);
  9.    public static final Color red = new Color(255, 0, 0);
  10.    public static final Color pink = new Color(255, 175, 175);
  11.    public static final Color orange = new Color(255, 200, 0);
  12.    public static final Color yellow = new Color(255, 255, 0);
  13.    public static final Color green = new Color(0, 255, 0);
  14.    public static final Color magenta = new Color(255, 0, 255);
  15.    public static final Color cyan = new Color(0, 255, 255);
  16.    public static final Color blue = new Color(0, 0, 255);
  17.    private int pData;
  18.    private int value;
  19.    private static final double FACTOR = 0.7;
  20.  
  21.    public Color(int var1, int var2, int var3) {
  22.       this((var1 & 255) << 16 | (var2 & 255) << 8 | var3 & 255);
  23.    }
  24.  
  25.    public Color(int var1) {
  26.       this.value = -16777216 | var1;
  27.    }
  28.  
  29.    public Color(float var1, float var2, float var3) {
  30.       this((int)(var1 * 255.0F), (int)(var2 * 255.0F), (int)(var3 * 255.0F));
  31.    }
  32.  
  33.    public int getRed() {
  34.       return this.value >> 16 & 255;
  35.    }
  36.  
  37.    public int getGreen() {
  38.       return this.value >> 8 & 255;
  39.    }
  40.  
  41.    public int getBlue() {
  42.       return this.value & 255;
  43.    }
  44.  
  45.    public int getRGB() {
  46.       return this.value;
  47.    }
  48.  
  49.    public Color brighter() {
  50.       int var1 = (int)((double)(this.value >> 16 & 255) * 1.4285714285714286);
  51.       int var10002 = var1 <= 255 ? var1 : 255;
  52.       var1 = (int)((double)(this.value >> 8 & 255) * 1.4285714285714286);
  53.       int var10003 = var1 <= 255 ? var1 : 255;
  54.       var1 = (int)((double)(this.value & 255) * 1.4285714285714286);
  55.       return new Color(var10002, var10003, var1 <= 255 ? var1 : 255);
  56.    }
  57.  
  58.    public Color darker() {
  59.       int var1 = (int)((double)(this.value >> 16 & 255) * 0.7);
  60.       int var10002 = var1 >= 0 ? var1 : 0;
  61.       var1 = (int)((double)(this.value >> 8 & 255) * 0.7);
  62.       int var10003 = var1 >= 0 ? var1 : 0;
  63.       var1 = (int)((double)(this.value & 255) * 0.7);
  64.       return new Color(var10002, var10003, var1 >= 0 ? var1 : 0);
  65.    }
  66.  
  67.    public int hashCode() {
  68.       return this.value;
  69.    }
  70.  
  71.    public boolean equals(Object var1) {
  72.       if (var1 instanceof Color) {
  73.          return this.value == ((Color)var1).value;
  74.       } else {
  75.          return false;
  76.       }
  77.    }
  78.  
  79.    public String toString() {
  80.       return this.getClass().getName() + "[r=" + (this.value >> 16 & 255) + ",g=" + (this.value >> 8 & 255) + ",b=" + (this.value & 255) + "]";
  81.    }
  82.  
  83.    public static Color getColor(String var0) {
  84.       return getColor(var0, (Color)null);
  85.    }
  86.  
  87.    public static Color getColor(String var0, Color var1) {
  88.       Integer var2 = Integer.getInteger(var0, (Integer)null);
  89.       if (var2 == null) {
  90.          return var1;
  91.       } else {
  92.          int var3 = var2.value;
  93.          return new Color(var3 >> 16 & 255, var3 >> 8 & 255, var3 & 255);
  94.       }
  95.    }
  96.  
  97.    public static Color getColor(String var0, int var1) {
  98.       Integer var2 = Integer.getInteger(var0, (Integer)null);
  99.       int var3 = var2 != null ? var2.value : var1;
  100.       return new Color(var3 >> 16 & 255, var3 >> 8 & 255, var3 & 255);
  101.    }
  102.  
  103.    public static int HSBtoRGB(float var0, float var1, float var2) {
  104.       int var3 = 0;
  105.       int var4 = 0;
  106.       int var5 = 0;
  107.       if (var1 == 0.0F) {
  108.          var3 = var4 = var5 = (int)(var2 * 255.0F);
  109.       } else {
  110.          double var6 = (double)var0 * (double)6.0F;
  111.          double var8 = var6 - Math.floor(var6);
  112.          double var10 = (double)var2 * ((double)1.0F - (double)var1);
  113.          double var12 = (double)var2 * ((double)1.0F - (double)var1 * var8);
  114.          double var14 = (double)var2 * ((double)1.0F - (double)var1 * ((double)1.0F - var8));
  115.          switch ((int)var6) {
  116.             case 0:
  117.                var3 = (int)(var2 * 255.0F);
  118.                var4 = (int)(var14 * (double)255.0F);
  119.                var5 = (int)(var10 * (double)255.0F);
  120.                break;
  121.             case 1:
  122.                var3 = (int)(var12 * (double)255.0F);
  123.                var4 = (int)(var2 * 255.0F);
  124.                var5 = (int)(var10 * (double)255.0F);
  125.                break;
  126.             case 2:
  127.                var3 = (int)(var10 * (double)255.0F);
  128.                var4 = (int)(var2 * 255.0F);
  129.                var5 = (int)(var14 * (double)255.0F);
  130.                break;
  131.             case 3:
  132.                var3 = (int)(var10 * (double)255.0F);
  133.                var4 = (int)(var12 * (double)255.0F);
  134.                var5 = (int)(var2 * 255.0F);
  135.                break;
  136.             case 4:
  137.                var3 = (int)(var14 * (double)255.0F);
  138.                var4 = (int)(var10 * (double)255.0F);
  139.                var5 = (int)(var2 * 255.0F);
  140.                break;
  141.             case 5:
  142.                var3 = (int)(var2 * 255.0F);
  143.                var4 = (int)(var10 * (double)255.0F);
  144.                var5 = (int)(var12 * (double)255.0F);
  145.          }
  146.       }
  147.  
  148.       return -16777216 | var3 << 16 | var4 << 8 | var5;
  149.    }
  150.  
  151.    public static float[] RGBtoHSB(int var0, int var1, int var2, float[] var3) {
  152.       if (var3 == null) {
  153.          var3 = new float[3];
  154.       }
  155.  
  156.       int var7 = var0 > var1 ? var0 : var1;
  157.       if (var2 > var7) {
  158.          var7 = var2;
  159.       }
  160.  
  161.       int var8 = var0 < var1 ? var0 : var1;
  162.       if (var2 < var8) {
  163.          var8 = var2;
  164.       }
  165.  
  166.       float var6 = (float)var7 / 255.0F;
  167.       float var5;
  168.       if (var7 != 0) {
  169.          var5 = (float)(var7 - var8) / (float)var7;
  170.       } else {
  171.          var5 = 0.0F;
  172.       }
  173.  
  174.       float var4;
  175.       if (var5 == 0.0F) {
  176.          var4 = 0.0F;
  177.       } else {
  178.          float var9 = (float)(var7 - var0) / (float)(var7 - var8);
  179.          float var10 = (float)(var7 - var1) / (float)(var7 - var8);
  180.          float var11 = (float)(var7 - var2) / (float)(var7 - var8);
  181.          if (var0 == var7) {
  182.             var4 = var11 - var10;
  183.          } else if (var1 == var7) {
  184.             var4 = 2.0F + var9 - var11;
  185.          } else {
  186.             var4 = 4.0F + var10 - var9;
  187.          }
  188.  
  189.          var4 /= 6.0F;
  190.          if (var4 < 0.0F) {
  191.             ++var4;
  192.          }
  193.       }
  194.  
  195.       var3[0] = var4;
  196.       var3[1] = var5;
  197.       var3[2] = var6;
  198.       return var3;
  199.    }
  200.  
  201.    public static Color getHSBColor(float var0, float var1, float var2) {
  202.       return new Color(HSBtoRGB(var0, var1, var2));
  203.    }
  204. }
  205.