All Packages Class Hierarchy This Package Previous Next Index
java.lang.Object | +----com.ibm.imageprocessing.ImageProcessing | +----com.ibm.imageprocessing.TransparentFilter
ImageProcessing
abstract class and provides transparency options for an image.
TransparentFilter makes specified colors in the image to appear
transparent by setting the transparency coefficients of those pixels to
zero.
This class provides the concrete implementation of the
startProcessing
method in its base class. In this method, the
filtering of the original image is done and processing events are fired to
indicate the status of processing the image.
This class uses one extended java.awt.image.ImageFilter
class
for filtering operation. This extended filter is available by the
getImageFilter
method, which can be used in the context of
the produces/filter/consumer paradigm, and
java.awt.image.FilteredImageSource
can be used to take
advantage of it.
For example:
java.awt.Canvas c = new java.awt.Canvas(); TransparentFilter tf = new TransparentFilter(); java.awt.ImageFilter filter = tf.getImageFilter(); java.awt.Image image = Toolkit.getDefaultToolkit(). getImage("c:\\apple.gif"); ..... // use java.awt.MediaTracker or any other technique to load the image .... FilteredImageSource producer = new FilteredImageSource(image.getSource(), filter); java.awt.Image processedImage = c.createImage(producer);There is one more way to do the filtering operation. This will be particularly useful if this class is used as a bean in an IDE and is wired to other beans to do the filtering.
TransparentFilter tf = new TransparentFilter(); // ifFetchArgumentsEvent
is used for setting the input image // or any control property,autoAction
property should be set to false. // otherwise there can be an infinite loop. tf.triggerAction(); // since the triggerAction method firesFetchArgumentsEvent
, // on receiving this event the input image for this bean is set using //setInputImage
method of this bean. When the processing // is over,the processed image can be retrieved usinggetResult
// method. java.awt.Image processedImage = tf.getResult();
public boolean NOTIFY_USER
public TransparentFilter()
public Image getResult()
public void setInputImage(Image inputImage)
processing
flag is true, this method returns without setting
the input image. If the processing
flag is false, this method sets
the input image and calls evaluate
if autoAction
is set to true. If the input argument is null and debug
flag is
true, IllegalArgumentException
will be thrown, else the null value
will be set as the input argument and no exception will be thrown.
public void addColor(Color color)
addColor
method of ColorList
.
Also the property change event is fired if the old size of color list
is not equal to the new size of the color list. If autoAction
is set to true, the evaluate
method is called. If the
processing
flag is true, the color is not added and
returns without doing anything.
public void removeColor(Color color)
removeColor
method of ColorList
.
Also the property change event is fired if the old size of a color list
is not equal to the new size of the color list.
If autoAction
is set to true, the evaluate
method is called. If the processing
flag is true, the color
is not removed and returns without doing anything.
public ImageFilter getImageFilter()
java.awt.image.ImageFilter
and can be used
as the second argument of the constructor of the
java.awt.image.FilteredImageSource
class. This method is
provided so that this class can also be used in the context of the
producer/filter/consumer paradigm. This method also facilitates the
use of beans as simple classes (instead of wiring them in IDEs).
public void setColorList(ColorList colors)
autoAction
is set to
true, the evaluate
method is called. If the processing
flag is true, the color list is not set and returns without doing anything.
public ColorList getColorList()
public synchronized void addImageProcessedListener(ImageProcessedListener listener)
public synchronized void removeImageProcessedListener(ImageProcessedListener listener)
public synchronized void addProcessingListener(ProcessingListener listener)
public synchronized void removeProcessingListener(ProcessingListener listener)
public synchronized void addProcessingErrorListener(ProcessingErrorListener listener)
public synchronized void removeProcessingErrorListener(ProcessingErrorListener listener)
protected void startProcessing()
processingStarted
event initially. Then it waits for the
image to be loaded. If the image has been successfully loaded
(meaning that no ProcessingErrorEvent
event is fired), the image
is filtered and the processed image is stored as a result.
If there is any error in processing (which includes grabbing pixels for result image),
it fires the ProcessingErrorEvent
event and returns.
If the processing is successfully completed, it fires the processingOver
and
ImageProcessedEvent
events. The old result is also stored. It then
compares the new result with the old result. If they are different,
the PropertyChangeEvent
event is fired. If the debug
flag
is true and inputImage
is null, NullPointerException
will be thrown. If the debug
flag is false and inputImage
is null, the result will be set to null and all the required events will be
thrown.
All Packages Class Hierarchy This Package Previous Next Index