Class ReplicateScaleFilter

java.lang.Object
java.awt.image.ImageFilter
java.awt.image.ReplicateScaleFilter
All Implemented Interfaces:
ImageConsumer, Cloneable
Direct Known Subclasses:
AreaAveragingScaleFilter

public class ReplicateScaleFilter extends ImageFilter
An ImageFilter class for scaling images using the simplest algorithm. This class extends the basic ImageFilter Class to scale an existing image and provide a source for a new image containing the resampled image. The pixels in the source image are sampled to produce pixels for an image of the specified size by replicating rows and columns of pixels to scale up or omitting rows and columns of pixels to scale down.

It is meant to be used in conjunction with a FilteredImageSource object to produce scaled versions of existing images. Due to implementation dependencies, there may be differences in pixel values of an image filtered on different platforms.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int
    The target height to scale the image.
    protected int
    The target width to scale the image.
    protected Object
    A byte array initialized with a size of destWidth and used to deliver a row of pixel data to the ImageConsumer.
    protected int[]
    An int array containing information about a column of pixels.
    protected int
    The height of the source image.
    protected int[]
    An int array containing information about a row of pixels.
    protected int
    The width of the source image.

    Fields declared in class ImageFilter

    consumer
    Modifier and Type
    Field
    Description
    protected ImageConsumer
    The consumer of the particular image data stream for which this instance of the ImageFilter is filtering data.

    Fields declared in interface ImageConsumer

    COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT
    Modifier and Type
    Field
    Description
    static final int
    The pixels will be delivered in (multiples of) complete scanlines at a time.
    static final int
    The image creation process was deliberately aborted.
    static final int
    An error was encountered while producing the image.
    static final int
    The pixels will be delivered in a random order.
    static final int
    The image contain a single static image.
    static final int
    One frame of the image is complete but there are more frames to be delivered.
    static final int
    The pixels will be delivered in a single pass.
    static final int
    The image is complete and there are no more pixels or frames to be delivered.
    static final int
    The pixels will be delivered in top-down, left-to-right order.
  • Constructor Summary

    Constructors
    Constructor
    Description
    ReplicateScaleFilter(int width, int height)
    Constructs a ReplicateScaleFilter that scales the pixels from its source Image as specified by the width and height parameters.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    setDimensions(int w, int h)
    Override the dimensions of the source image and pass the dimensions of the new scaled size to the ImageConsumer.
    void
    setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
    Choose which rows and columns of the delivered byte pixels are needed for the destination scaled image and pass through just those rows and columns that are needed, replicated as necessary.
    void
    setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
    Choose which rows and columns of the delivered int pixels are needed for the destination scaled image and pass through just those rows and columns that are needed, replicated as necessary.
    void
    Passes along the properties from the source object after adding a property indicating the scale applied.

    Methods declared in class ImageFilter

    clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setColorModel, setHints
    Modifier and Type
    Method
    Description
    Clones this object.
    Returns a unique instance of an ImageFilter object which will actually perform the filtering for the specified ImageConsumer.
    void
    imageComplete(int status)
    Filters the information provided in the imageComplete method of the ImageConsumer interface.
    void
    Responds to a request for a TopDownLeftRight (TDLR) ordered resend of the pixel data from an ImageConsumer.
    void
    Filter the information provided in the setColorModel method of the ImageConsumer interface.
    void
    setHints(int hints)
    Filters the information provided in the setHints method of the ImageConsumer interface.

    Methods declared in class Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    Modifier and Type
    Method
    Description
    boolean
    Indicates whether some other object is "equal to" this one.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Finalization is deprecated and subject to removal in a future release.
    final Class<?>
    Returns the runtime class of this Object.
    int
    Returns a hash code value for this object.
    final void
    Wakes up a single thread that is waiting on this object's monitor.
    final void
    Wakes up all threads that are waiting on this object's monitor.
    Returns a string representation of the object.
    final void
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
    final void
    wait(long timeoutMillis)
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
    final void
    wait(long timeoutMillis, int nanos)
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  • Field Details

    • srcWidth

      protected int srcWidth
      The width of the source image.
    • srcHeight

      protected int srcHeight
      The height of the source image.
    • destWidth

      protected int destWidth
      The target width to scale the image.
    • destHeight

      protected int destHeight
      The target height to scale the image.
    • srcrows

      protected int[] srcrows
      An int array containing information about a row of pixels.
    • srccols

      protected int[] srccols
      An int array containing information about a column of pixels.
    • outpixbuf

      protected Object outpixbuf
      A byte array initialized with a size of destWidth and used to deliver a row of pixel data to the ImageConsumer.
  • Constructor Details

    • ReplicateScaleFilter

      public ReplicateScaleFilter(int width, int height)
      Constructs a ReplicateScaleFilter 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
      Throws:
      IllegalArgumentException - if width equals zero or height equals zero
  • Method Details

    • setProperties

      public void setProperties(Hashtable<?,?> props)
      Passes along the properties from the source object after adding a property indicating the scale applied. This method invokes super.setProperties, which might result in additional properties being added.

      Note: This method is intended to be called by the ImageProducer of the Image whose pixels are being filtered. Developers using this class to filter pixels from an image should avoid calling this method directly since that operation could interfere with the filtering operation.

      Specified by:
      setProperties in interface ImageConsumer
      Overrides:
      setProperties in class ImageFilter
      Parameters:
      props - the properties from the source object
    • setDimensions

      public void setDimensions(int w, int h)
      Override the dimensions of the source image and pass the dimensions of the new scaled size to the ImageConsumer.

      Note: This method is intended to be called by the ImageProducer of the Image whose pixels are being filtered. Developers using this class to filter pixels from an image should avoid calling this method directly since that operation could interfere with the filtering operation.

      Specified by:
      setDimensions in interface ImageConsumer
      Overrides:
      setDimensions in class ImageFilter
      Parameters:
      w - the width of the source image
      h - the height of the source image
      See Also:
    • setPixels

      public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
      Choose which rows and columns of the delivered byte pixels are needed for the destination scaled image and pass through just those rows and columns that are needed, replicated as necessary.

      Note: This method is intended to be called by the ImageProducer of the Image whose pixels are being filtered. Developers using this class to filter pixels from an image should avoid calling this method directly since that operation could interfere with the filtering operation.

      Specified by:
      setPixels in interface ImageConsumer
      Overrides:
      setPixels in class ImageFilter
      Parameters:
      x - the X coordinate of the upper-left corner of the area of pixels to be set
      y - the Y coordinate of the upper-left corner of the area of pixels to be set
      w - the width of the area of pixels
      h - the height of the area of pixels
      model - the specified ColorModel
      pixels - the array of pixels
      off - the offset into the pixels array
      scansize - the distance from one row of pixels to the next in the pixels array
      See Also:
    • setPixels

      public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
      Choose which rows and columns of the delivered int pixels are needed for the destination scaled image and pass through just those rows and columns that are needed, replicated as necessary.

      Note: This method is intended to be called by the ImageProducer of the Image whose pixels are being filtered. Developers using this class to filter pixels from an image should avoid calling this method directly since that operation could interfere with the filtering operation.

      Specified by:
      setPixels in interface ImageConsumer
      Overrides:
      setPixels in class ImageFilter
      Parameters:
      x - the X coordinate of the upper-left corner of the area of pixels to be set
      y - the Y coordinate of the upper-left corner of the area of pixels to be set
      w - the width of the area of pixels
      h - the height of the area of pixels
      model - the specified ColorModel
      pixels - the array of pixels
      off - the offset into the pixels array
      scansize - the distance from one row of pixels to the next in the pixels array
      See Also: