/* * Created on Jul 19, 2004 */ package imageprocessing; /** Interface for an object than can transform one IImage into another. * */ public interface IImageFilter { /** The image filter, that is, a method that transforms one image into * another one. Example: the produceTimesTwo method of ImageProcessor * in Project 5 is such a filter. The original image * should not be modified. The two images should not share any variables. * * @param originalImage a valid, non-null IImage object. * @return a different, non-null IImage object. */ IImage filter(IImage originalImage); /** A brief text description, evocative of the filter operation. The intention * is that such a description could be used for a button label or other * such application. * @return a short non-null string. */ String shortName(); /** An English text description of the filter operation. The intention is that * this description might appear in a help message, text box, tool tip, * or other such context. It should be long enough to clearly explain * to a user what the filter operation is intended to do. * @return a non-null string. */ String description(); /** Names of the authors of this filter, or other information the authors * wish to share publicly. This may be null, especially * if the authors do not wish to be identified. Any non-null * information you provide might be publicly visible if the filter is * used for demonstrations, posted on the web, etc. * is * @return a string, which may be null. */ String authors(); }