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

  1. package java.awt.image;
  2.  
  3. public class IndexColorModel extends ColorModel {
  4.    private int[] rgb;
  5.    private int map_size;
  6.    private boolean opaque;
  7.    private int transparent_index;
  8.  
  9.    public IndexColorModel(int var1, int var2, byte[] var3, byte[] var4, byte[] var5) {
  10.       super(var1);
  11.       this.setRGBs(var2, var3, var4, var5, (byte[])null);
  12.    }
  13.  
  14.    public IndexColorModel(int var1, int var2, byte[] var3, byte[] var4, byte[] var5, int var6) {
  15.       super(var1);
  16.       this.setRGBs(var2, var3, var4, var5, (byte[])null);
  17.       this.setTransparentPixel(var6);
  18.    }
  19.  
  20.    public IndexColorModel(int var1, int var2, byte[] var3, byte[] var4, byte[] var5, byte[] var6) {
  21.       super(var1);
  22.       if (var2 > 0 && var6 == null) {
  23.          throw new NullPointerException();
  24.       } else {
  25.          this.setRGBs(var2, var3, var4, var5, var6);
  26.       }
  27.    }
  28.  
  29.    private void setRGBs(int var1, byte[] var2, byte[] var3, byte[] var4, byte[] var5) {
  30.       if (super.pixel_bits <= 8 && var1 <= 1 << super.pixel_bits) {
  31.          this.map_size = var1;
  32.          this.rgb = new int[256];
  33.          int var6 = 255;
  34.          this.opaque = true;
  35.  
  36.          for(int var7 = 0; var7 < var1; ++var7) {
  37.             if (var5 != null) {
  38.                var6 = var5[var7] & 255;
  39.                if (var6 != 255) {
  40.                   this.opaque = false;
  41.                }
  42.             }
  43.  
  44.             this.rgb[var7] = var6 << 24 | (var2[var7] & 255) << 16 | (var3[var7] & 255) << 8 | var4[var7] & 255;
  45.          }
  46.  
  47.       } else {
  48.          throw new ArrayIndexOutOfBoundsException();
  49.       }
  50.    }
  51.  
  52.    public IndexColorModel(int var1, int var2, byte[] var3, int var4, boolean var5) {
  53.       this(var1, var2, var3, var4, var5, -1);
  54.    }
  55.  
  56.    public IndexColorModel(int var1, int var2, byte[] var3, int var4, boolean var5, int var6) {
  57.       super(var1);
  58.       if (var1 <= 8 && var2 <= 1 << var1) {
  59.          this.map_size = var2;
  60.          this.rgb = new int[256];
  61.          int var7 = var4;
  62.          short var8 = 255;
  63.          this.opaque = true;
  64.  
  65.          for(int var9 = 0; var9 < var2; ++var9) {
  66.             this.rgb[var9] = (var3[var7++] & 255) << 16 | (var3[var7++] & 255) << 8 | var3[var7++] & 255;
  67.             if (var5) {
  68.                var8 = var3[var7++];
  69.                if (var8 != 255) {
  70.                   this.opaque = false;
  71.                }
  72.             }
  73.  
  74.             int[] var10000 = this.rgb;
  75.             var10000[var9] |= var8 << 24;
  76.          }
  77.  
  78.          this.setTransparentPixel(var6);
  79.       } else {
  80.          throw new ArrayIndexOutOfBoundsException();
  81.       }
  82.    }
  83.  
  84.    public final int getMapSize() {
  85.       return this.map_size;
  86.    }
  87.  
  88.    public final int getTransparentPixel() {
  89.       return this.transparent_index;
  90.    }
  91.  
  92.    public final void getReds(byte[] var1) {
  93.       for(int var2 = 0; var2 < this.map_size; ++var2) {
  94.          var1[var2] = (byte)(this.rgb[var2] >> 16);
  95.       }
  96.  
  97.    }
  98.  
  99.    public final void getGreens(byte[] var1) {
  100.       for(int var2 = 0; var2 < this.map_size; ++var2) {
  101.          var1[var2] = (byte)(this.rgb[var2] >> 8);
  102.       }
  103.  
  104.    }
  105.  
  106.    public final void getBlues(byte[] var1) {
  107.       for(int var2 = 0; var2 < this.map_size; ++var2) {
  108.          var1[var2] = (byte)this.rgb[var2];
  109.       }
  110.  
  111.    }
  112.  
  113.    public final void getAlphas(byte[] var1) {
  114.       for(int var2 = 0; var2 < this.map_size; ++var2) {
  115.          var1[var2] = (byte)(this.rgb[var2] >> 24);
  116.       }
  117.  
  118.    }
  119.  
  120.    private void setTransparentPixel(int var1) {
  121.       if (var1 < this.map_size && var1 >= 0) {
  122.          int[] var10000 = this.rgb;
  123.          var10000[var1] &= 16777215;
  124.          this.opaque = false;
  125.       } else {
  126.          var1 = -1;
  127.       }
  128.  
  129.       this.transparent_index = var1;
  130.    }
  131.  
  132.    public final int getRed(int var1) {
  133.       return this.rgb[var1] >> 16 & 255;
  134.    }
  135.  
  136.    public final int getGreen(int var1) {
  137.       return this.rgb[var1] >> 8 & 255;
  138.    }
  139.  
  140.    public final int getBlue(int var1) {
  141.       return this.rgb[var1] & 255;
  142.    }
  143.  
  144.    public final int getAlpha(int var1) {
  145.       return this.rgb[var1] >> 24 & 255;
  146.    }
  147.  
  148.    public final int getRGB(int var1) {
  149.       return this.rgb[var1];
  150.    }
  151. }
  152.