home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / awt / dibitmap.java < prev    next >
Text File  |  1995-08-11  |  3KB  |  101 lines

  1. /*
  2.  * @(#)DIBitmap.java    1.9 95/03/14 Patrick Naughton
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. /*-
  21.  *    Device Independant Bitmap representation.
  22.  */
  23.  
  24. package awt;
  25.  
  26. import browser.Observable;
  27.  
  28. /**
  29.  * This class holds a device independant 8 bit deep image and its colormap.
  30.  *
  31.  * @version 1.9 14 Mar 1995
  32.  * @author Patrick Naughton
  33.  */
  34. public class DIBitmap extends Observable {
  35.     public int width;
  36.     public int height;
  37.     public int num_colors;
  38.     public byte red[];
  39.     public byte green[];
  40.     public byte blue[];
  41.     public byte raster[];
  42.     public int trans_index;
  43.     public int generation;
  44.  
  45.     /**
  46.      * This constructor is dangerous in that it creates a DIBitmap with
  47.      * invalid fields. However, it is needed by subclassers who cannot
  48.      * provide the necessary information at construction time, since they are
  49.      * reading the image from a file, for example.
  50.      */
  51.  
  52.     public DIBitmap () {
  53.     }
  54.  
  55.     /**
  56.      * This constructor takes the passed in raster as the correct bits for an
  57.      * image.
  58.      */
  59.  
  60.     public DIBitmap (int w, int h, int n,
  61.         byte r[], byte g[], byte b[], byte d[]) {
  62.  
  63.     if (w <= 0 || h <= 0 ||
  64.         r == null || r.length != n ||
  65.         g == null || g.length != n ||
  66.         b == null || b.length != n ||
  67.         d == null || d.length != w * h)
  68.         throw new DataFormatException();
  69.  
  70.     width = w;
  71.     height = h;
  72.     num_colors = n;
  73.     red = r;
  74.     green = g;
  75.     blue = b;
  76.     raster = d;
  77.     }
  78.  
  79.     /**
  80.      * This constructor allocates the space for an image of the specified
  81.      * size.  The contents of the image and colormap are undefined.
  82.      */
  83.  
  84.     public DIBitmap (int w, int h) {
  85.     this(w, h, 256,
  86.          new byte[256],
  87.          new byte[256],
  88.          new byte[256],
  89.          new byte[w * h]);
  90.     }
  91.  
  92.     /**
  93.      * Touches this bitmap, ie, if it is cached anywhere it
  94.      * must be reloaded.
  95.      */
  96.     public void touch() {
  97.     generation++;
  98.     }
  99. }
  100.  
  101.