## demo.webcab.chat.gui
Class ImageCache

    java.lang.Object
      |
      +--java.awt.Image
            |
            +--demo.webcab.chat.gui.ImageCache

All Implemented Interfaces:
  java.awt.image.ImageConsumer

public class ImageCache
extends java.awt.Image
implements java.awt.image.ImageConsumer

This class encapsulates all data a `java.awt.Image` holds, by caching it into memory. It is an alternative to the way Images created with `java.awt.Toolkit.getImage` are drawn.

When an image is created with awt's methods, the bytes loaded from the specified image URL might suffer from low band width. `ImageCache` has a very stable loading method, which ensures no data losses occur. This prevents errors like missing chunks or mismatched colors.

Author:
  WebCab Components

Field Summary
`static int` `ANIMATED` The image is an animated gif.
`static int` `DUNNO` The state of the image is unknown
`static int` `SINGLE` The image is a static one (no frames).

Fields inherited from class java.awt.Image
`SCALE_AREA_AVERAGING, SCALE_DEFAULT, SCALE_FAST, SCALE_REPLICATE, SCALE_SMOOTH, UndefinedProperty`

Fields inherited from interface java.awt.image.ImageConsumer
`COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT`

Constructor Summary
`ImageCache(java.lang.String s, java.awt.Component component)` This constructor loads the image data into memory.

Method Summary
`void` `flush()`
`java.awt.Graphics` `getGraphics()`
`int` `getHeight(java.awt.image.ImageObserver o)`
`java.awt.Image` `getImage()`
`java.lang.Object` `getProperty(java.lang.String name, java.awt.image.ImageObserver observer)`
`java.awt.Image` `getScaledInstance(int w, int h, int hints)`
`java.awt.image.ImageProducer` `getSource()`
`int` `getType()` Returns any of the three available known, out of which you can test whether the image is an animated frame-by-frame or is static.
`int` `getWidth(java.awt.image.ImageObserver o)`
`void` `imageComplete(int status)`
`static java.awt.Image` `readImage(java.lang.String imageFile, java.awt.Component component)` A static method provided by this class as a convenience.
`static java.awt.Image` `readImage(java.net.URL imageURL, java.awt.Component component)` A static method provided by this class as a convenience.
`void` `setColorModel(java.awt.image.ColorModel model)`
`void` `setDimensions(int w, int h)`
`void` `setHints(int hints)`
`void` `setPixels(int x, int y, int w, int h, java.awt.image.ColorModel c, byte[] pixels, int off, int scansize)`
`void` `setPixels(int x, int y, int w, int h, java.awt.image.ColorModel c, int[] pixels, int off, int scansize)`
`void` `setProperties(java.util.Hashtable h)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DUNNO

    public static final int DUNNO

  The state of the image is unknown

### SINGLE

    public static final int SINGLE

  The image is a static one (no frames).

### ANIMATED

    public static final int ANIMATED

  The image is an animated gif.

Constructor Detail

### ImageCache

    public ImageCache(java.lang.String s,
                      java.awt.Component component)

  This constructor loads the image data into memory.
  Parameters:
    `imageURL` - The URL base where the image is located
    `comp` - The component to render with
  See Also:
    `readImage(URL, Component)`

Method Detail

### readImage

    public static java.awt.Image readImage(java.lang.String imageFile,
                                           java.awt.Component component)

  A static method provided by this class as a convenience. The functionality is similar to that of `java.awt.Toolkit.getImage`, offering a more secure transfer and less data loss.
  Parameters:
    `imageFile` - the name of the URL where the image to be loaded is located
    `component` - the Component which is going to encapsulate the Image (for example a `java.awt.Canvas`)
  Returns:
    The image which gets its data from the specified resource, ready to be deployed inside the `component`.
  See Also:
    `readImage(URL, Component)`

### readImage

    public static java.awt.Image readImage(java.net.URL imageURL,
                                           java.awt.Component component)

  A static method provided by this class as a convenience. The functionality is similar to that of `java.awt.Toolkit.getImage`, offering a more secure transfer and less data loss.
  Parameters:
    `imageURl` - the URL base of the image location
    `imageFile` - the name of the image
    `component` - the Component which is going to encapsulate the Image (for example a `java.awt.Canvas`)
  Returns:
    The image which gets its data from the specified resource, ready to be deployed inside the `component`.
  See Also:
    `readImage(URL, Component)`, `readImage(String, Component)`

### imageComplete

    public void imageComplete(int status)

  Specified by:
    `imageComplete` in interface `java.awt.image.ImageConsumer`

### setColorModel

    public void setColorModel(java.awt.image.ColorModel model)

  Specified by:
    `setColorModel` in interface `java.awt.image.ImageConsumer`

### setDimensions

    public void setDimensions(int w,
                              int h)

  Specified by:
    `setDimensions` in interface `java.awt.image.ImageConsumer`

### setHints

    public void setHints(int hints)

  Specified by:
    `setHints` in interface `java.awt.image.ImageConsumer`

### setPixels

    public void setPixels(int x,
                          int y,
                          int w,
                          int h,
                          java.awt.image.ColorModel c,
                          byte[] pixels,
                          int off,
                          int scansize)

  Specified by:
    `setPixels` in interface `java.awt.image.ImageConsumer`

### setPixels

    public void setPixels(int x,
                          int y,
                          int w,
                          int h,
                          java.awt.image.ColorModel c,
                          int[] pixels,
                          int off,
                          int scansize)

  Specified by:
    `setPixels` in interface `java.awt.image.ImageConsumer`

### setProperties

    public void setProperties(java.util.Hashtable h)

  Specified by:
    `setProperties` in interface `java.awt.image.ImageConsumer`

### flush

    public void flush()

  Overrides:
    `flush` in class `java.awt.Image`

### getGraphics

    public java.awt.Graphics getGraphics()

  Overrides:
    `getGraphics` in class `java.awt.Image`

### getHeight

    public int getHeight(java.awt.image.ImageObserver o)

  Overrides:
    `getHeight` in class `java.awt.Image`

### getWidth

    public int getWidth(java.awt.image.ImageObserver o)

  Overrides:
    `getWidth` in class `java.awt.Image`

### getProperty

    public java.lang.Object getProperty(java.lang.String name,
                                        java.awt.image.ImageObserver observer)

  Overrides:
    `getProperty` in class `java.awt.Image`

### getScaledInstance

    public java.awt.Image getScaledInstance(int w,
                                            int h,
                                            int hints)

  Overrides:
    `getScaledInstance` in class `java.awt.Image`

### getSource

    public java.awt.image.ImageProducer getSource()

  Overrides:
    `getSource` in class `java.awt.Image`

### getImage

    public java.awt.Image getImage()

### getType

    public int getType()

  Returns any of the three available known, out of which you can test whether the image is an animated frame-by-frame or is static.
  See Also:
    `ANIMATED`, `SINGLE`