com.bbn.openmap.omGraphics
Class OMRasterObject.TrimScaleFilter

java.lang.Object
  extended by java.awt.image.ImageFilter
      extended by java.awt.image.ReplicateScaleFilter
          extended by java.awt.image.AreaAveragingScaleFilter
              extended by com.bbn.openmap.omGraphics.OMRasterObject.TrimScaleFilter
All Implemented Interfaces:
java.awt.image.ImageConsumer, java.lang.Cloneable
Enclosing class:
OMRasterObject

protected class OMRasterObject.TrimScaleFilter
extends java.awt.image.AreaAveragingScaleFilter

This is an effort to create an scaling ImageFilter that will trim off the unused pixels, lessoning the load on the display server. It depends on knowing several things about the projection and the current image parameters, which is why it's not a stand-alone filter class.


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
  OMRasterObject.TrimScaleFilter(int width, int height)
          Constructs an TrimScaleFilter that scales the pixels from its source Image as specified by the width and height parameters.
protected OMRasterObject.TrimScaleFilter(int width, int height, int algorithmType)
          Constructs an AreaAveragingScaleFilter that scales the pixels from its source Image as specified by the width and height parameters.
 
Method Summary
protected  java.awt.image.ImageFilter getFilterWithChanges()
          The filter must change if the requested image size changes because of clipping.
 void setHints(int hints)
          Detect if the data is being delivered with the necessary hints to allow the averaging algorithm to do its work.
protected  java.awt.Image trimExcessPixels()
          Get a trimmed-down image to expand to the map, that contains all the pixels that will be visible after expansion.
 
Methods inherited from class java.awt.image.AreaAveragingScaleFilter
setPixels, setPixels
 
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

OMRasterObject.TrimScaleFilter

public OMRasterObject.TrimScaleFilter(int width,
                                      int height)
Constructs an TrimScaleFilter that scales the pixels from its source Image as specified by the width and height parameters.

Parameters:
width - the target width to scale the image
height - the target height to scale the image

OMRasterObject.TrimScaleFilter

protected OMRasterObject.TrimScaleFilter(int width,
                                         int height,
                                         int algorithmType)
Constructs an AreaAveragingScaleFilter that scales the pixels from its source Image as specified by the width and height parameters.

Parameters:
width - the target width to scale the image
height - the target height to scale the image
algorithmType - FAST_SCALING or SMOOTH_SCALING - FAST is much faster!
Method Detail

setHints

public void setHints(int hints)
Detect if the data is being delivered with the necessary hints to allow the averaging algorithm to do its work. If the algorithmType is set to FAST, I manipulate the hints to force the filter to act like a ReplicateScaleFilter.

Specified by:
setHints in interface java.awt.image.ImageConsumer
Overrides:
setHints in class java.awt.image.AreaAveragingScaleFilter
See Also:
ImageConsumer.setHints(int)

getFilterWithChanges

protected java.awt.image.ImageFilter getFilterWithChanges()
The filter must change if the requested image size changes because of clipping. Get the good filter here, after calling trimExcessPixels().


trimExcessPixels

protected java.awt.Image trimExcessPixels()
Get a trimmed-down image to expand to the map, that contains all the pixels that will be visible after expansion. Returns null if the image should be used as is, and the filter as well.



Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details