FileDocCategorySizeDatePackage
ImageFilter.javaAPI DocJava SE 5 API9208Fri Aug 26 14:56:54 BST 2005java.awt.image

ImageFilter

public class ImageFilter extends Object implements ImageConsumer, Cloneable
This class implements a filter for the set of interface methods that are used to deliver data from an ImageProducer to an ImageConsumer. It is meant to be used in conjunction with a FilteredImageSource object to produce filtered versions of existing images. It is a base class that provides the calls needed to implement a "Null filter" which has no effect on the data being passed through. Filters should subclass this class and override the methods which deal with the data that needs to be filtered and modify it as necessary.
see
FilteredImageSource
see
ImageConsumer
version
1.31 07/16/04
author
Jim Graham

Fields Summary
protected ImageConsumer
consumer
The consumer of the particular image data stream for which this instance of the ImageFilter is filtering data. It is not initialized during the constructor, but rather during the getFilterInstance() method call when the FilteredImageSource is creating a unique instance of this object for a particular image data stream.
Constructors Summary
Methods Summary
public java.lang.Objectclone()
Clones this object.

 
	try { 
	    return super.clone();
	} catch (CloneNotSupportedException e) { 
	    // this shouldn't happen, since we are Cloneable
	    throw new InternalError();
	}
    
public java.awt.image.ImageFiltergetFilterInstance(java.awt.image.ImageConsumer ic)
Returns a unique instance of an ImageFilter object which will actually perform the filtering for the specified ImageConsumer. The default implementation just clones this object.

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.

param
ic the specified ImageConsumer
return
an ImageFilter used to perform the filtering for the specified ImageConsumer.

	ImageFilter instance = (ImageFilter) clone();
	instance.consumer = ic;
	return instance;
    
public voidimageComplete(int status)
Filters the information provided in the imageComplete method of the ImageConsumer interface.

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.

see
ImageConsumer#imageComplete

	consumer.imageComplete(status);
    
public voidresendTopDownLeftRight(java.awt.image.ImageProducer ip)
Responds to a request for a TopDownLeftRight (TDLR) ordered resend of the pixel data from an ImageConsumer. When an ImageConsumer being fed by an instance of this ImageFilter requests a resend of the data in TDLR order, the FilteredImageSource invokes this method of the ImageFilter.

An ImageFilter subclass might override this method or not, depending on if and how it can send data in TDLR order. Three possibilities exist:

  • Do not override this method. This makes the subclass use the default implementation, which is to forward the request to the indicated ImageProducer using this filter as the requesting ImageConsumer. This behavior is appropriate if the filter can determine that it will forward the pixels in TDLR order if its upstream producer object sends them in TDLR order.
  • Override the method to simply send the data. This is appropriate if the filter can handle the request itself — for example, if the generated pixels have been saved in some sort of buffer.
  • Override the method to do nothing. This is appropriate if the filter cannot produce filtered data in TDLR order.

see
ImageProducer#requestTopDownLeftRightResend
param
ip the ImageProducer that is feeding this instance of the filter - also the ImageProducer that the request should be forwarded to if necessary
exception
NullPointerException if ip is null

	ip.requestTopDownLeftRightResend(this);
    
public voidsetColorModel(java.awt.image.ColorModel model)
Filter the information provided in the setColorModel method of the ImageConsumer interface.

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.

see
ImageConsumer#setColorModel

	consumer.setColorModel(model);
    
public voidsetDimensions(int width, int height)
Filters the information provided in the setDimensions method of the ImageConsumer interface.

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.

see
ImageConsumer#setDimensions

	consumer.setDimensions(width, height);
    
public voidsetHints(int hints)
Filters the information provided in the setHints method of the ImageConsumer interface.

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.

see
ImageConsumer#setHints

	consumer.setHints(hints);
    
public voidsetPixels(int x, int y, int w, int h, java.awt.image.ColorModel model, byte[] pixels, int off, int scansize)
Filters the information provided in the setPixels method of the ImageConsumer interface which takes an array of bytes.

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.

see
ImageConsumer#setPixels

	consumer.setPixels(x, y, w, h, model, pixels, off, scansize);
    
public voidsetPixels(int x, int y, int w, int h, java.awt.image.ColorModel model, int[] pixels, int off, int scansize)
Filters the information provided in the setPixels method of the ImageConsumer interface which takes an array of integers.

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.

see
ImageConsumer#setPixels

	consumer.setPixels(x, y, w, h, model, pixels, off, scansize);
    
public voidsetProperties(java.util.Hashtable props)
Passes the properties from the source object along after adding a property indicating the stream of filters it has been run through.

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.

param
props the properties from the source object
exception
NullPointerException if props is null

	Hashtable<Object,Object> p = (Hashtable<Object,Object>)props.clone();
	Object o = p.get("filters");
	if (o == null) {
	    p.put("filters", toString());
	} else if (o instanceof String) {
	    p.put("filters", ((String) o)+toString());
	}
	consumer.setProperties(p);