java.awt.image
Class AreaAveragingScaleFilter

java.lang.Object
  extended by java.awt.image.ImageFilter
      extended by java.awt.image.ReplicateScaleFilter
          extended by java.awt.image.AreaAveragingScaleFilter
All Implemented Interfaces:
ImageConsumer, Cloneable

public class AreaAveragingScaleFilter
extends ReplicateScaleFilter

This filter should produce images which do not have image artifacts like broken lines which were originally unbroken. The cost is of course speed. Using bi-linear interpolation here against 4 pixel points should give the desired results although Sun does not specify what the exact algorithm should be.


Field Summary
 
Fields inherited from class java.awt.image.ReplicateScaleFilter
destHeight, destWidth, outpixbuf, srccols, srcHeight, srcrows, srcWidth
 
Fields inherited from class java.awt.image.ImageFilter
consumer
 
Fields inherited from interface java.awt.image.ImageConsumer
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT
 
Constructor Summary
AreaAveragingScaleFilter(int width, int height)
          Construct an instance of AreaAveragingScaleFilter which should be used in conjunction with a FilteredImageSource object.
 
Method Summary
 void setHints(int flags)
          The ImageProducer should call this method with a bit mask of hints from any of RANDOMPIXELORDER, TOPDOWNLEFTRIGHT, COMPLETESCANLINES, SINGLEPASS, SINGLEFRAME from the ImageConsumer interface.
 void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int offset, int scansize)
          This function delivers a rectangle of pixels where any pixel(m,n) is stored in the array as a byte at index (n * scansize + m + offset).
 void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize)
          This function delivers a rectangle of pixels where any pixel(m,n) is stored in the array as an int at index (n * scansize + m + offset).
 
Methods inherited from class java.awt.image.ReplicateScaleFilter
setDimensions, setProperties
 
Methods inherited from class java.awt.image.ImageFilter
clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setColorModel
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AreaAveragingScaleFilter

public AreaAveragingScaleFilter(int width,
                                int height)
Construct an instance of AreaAveragingScaleFilter which should be used in conjunction with a FilteredImageSource object.

Parameters:
width - the width of the destination image
height - the height of the destination image
Method Detail

setHints

public void setHints(int flags)
The ImageProducer should call this method with a bit mask of hints from any of RANDOMPIXELORDER, TOPDOWNLEFTRIGHT, COMPLETESCANLINES, SINGLEPASS, SINGLEFRAME from the ImageConsumer interface.
FIXME - more than likely Sun's implementation desires TOPDOWNLEFTRIGHT order and this method is overloaded here in order to assure that mask is part of the hints added to the consumer.

Specified by:
setHints in interface ImageConsumer
Overrides:
setHints in class ImageFilter
Parameters:
flags - a bit mask of hints
See Also:
ImageConsumer

setPixels

public void setPixels(int x,
                      int y,
                      int w,
                      int h,
                      ColorModel model,
                      byte[] pixels,
                      int offset,
                      int scansize)
This function delivers a rectangle of pixels where any pixel(m,n) is stored in the array as a byte at index (n * scansize + m + offset).

Specified by:
setPixels in interface ImageConsumer
Overrides:
setPixels in class ReplicateScaleFilter
Parameters:
x - the x coordinate of the rectangle
y - the y coordinate of the rectangle
w - the width of the rectangle
h - the height of the rectangle
model - the ColorModel used to translate the pixels
pixels - the array of pixel values
offset - the index of the first pixels in the pixels array
scansize - the width to use in extracting pixels from the pixels array

setPixels

public void setPixels(int x,
                      int y,
                      int w,
                      int h,
                      ColorModel model,
                      int[] pixels,
                      int offset,
                      int scansize)
This function delivers a rectangle of pixels where any pixel(m,n) is stored in the array as an int at index (n * scansize + m + offset).

Specified by:
setPixels in interface ImageConsumer
Overrides:
setPixels in class ReplicateScaleFilter
Parameters:
x - the x coordinate of the rectangle
y - the y coordinate of the rectangle
w - the width of the rectangle
h - the height of the rectangle
model - the ColorModel used to translate the pixels
pixels - the array of pixel values
offset - the index of the first pixels in the pixels array
scansize - the width to use in extracting pixels from the pixels array