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
    Compares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    May cause performance issues, deadlocks and hangs.
    final Class<? extends Object>
    Answers the unique instance of java.lang.Class which represents the class of the receiver.
    int
    Answers an integer hash code for the receiver.
    final void
    Causes one thread which is waiting on the receiver to be made ready to run.
    final void
    Causes all threads which are waiting on the receiver to be made ready to run.
    Answers a string containing a concise, human-readable description of the receiver.
    final void
    Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated by notify or notifyAll).
    final void
    wait(long time)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
    final void
    wait(long time, int frac)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
  • 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: