java图像处理重要的类和方法

JAVA处理图像例如图片等时会用到一些接口,类或者方法。如果对于从未接触到的人来说可能会很陌生。所以在这里整理一下,以备需要。
1.抽象类 Image 是表示图形图像的所有类的超类。必须以特定于平台的方式获取图像。
getSource()
public abstract ImageProducer getSource()
获取生成图像像素的对象。此方法由图像过滤类和执行图像转换及缩放的方法调用。
返回为此图像生成像素的图像生产者。
getGraphics()
public abstract Graphics getGraphics()
创建供绘制闭屏图像(off-screen image)使用的图形上下文。此方法仅供闭屏图像调用。
返回:
绘制闭屏图像的图形上下文。
抛出:
UnsupportedOperationException – 如果为非闭屏图像所调用。
getHeight() and getWidth() 在这里就无须赘述了。

2.类 RGBImageFilter
public abstract class RGBImageFilter
extends ImageFilter
此类提供一种便捷方式创建 ImageFilter,创建的 ImageFilter 可修改使用默认 RGB ColorModel 图像的像素。这意味着要与 FilteredImageSource 对象结合使用来生成现有图像的过滤形式。该类是一个抽象类,它提供引导所有像素数据通过单独某个方法所需的调用,其中,无论 ImageProducer 正使用何种 ColorModel,该方法每次都会转换默认 RGB ColorModel 中的一个像素。创建可用图像过滤器需要定义的惟一方法是 filterRGB 方法。以下是定义交换图像中红色分量和蓝色分量过滤器的一个例子:

class RedBlueSwapFilter extends RGBImageFilter {
public RedBlueSwapFilter() {
// The filter’s operation does not depend on the
// pixel’s location, so IndexColorModels can be
// filtered directly.
canFilterIndexColorModel = true;
}

public int filterRGB(int x, int y, int rgb) {
return ((rgb & 0xff00ff00)
| ((rgb & 0xff0000) >> 16)
| ((rgb & 0xff) << 16));
}
}
方法:protected boolean canFilterIndexColorModel
此布尔值指示是否可以接受用 filterRGB 方法的颜色过滤替代逐像素过滤,并应用于 IndexColorModel 对象的颜色表项。如果子类的 filterRGB 方法不依赖过滤像素的坐标,则子类应在其构造方法中将此变量设置为 true。
fileRGB
public abstract int filterRGB(intx,inty,intrgb)
子类必须指定该方法,以将使用默认 RGB ColorModel 的单个输入像素转换成单个输出像素。
x- 像素的 X 坐标
y- 像素的 Y 坐标
rgb- 使用默认 RGB 颜色模型的整数像素表示
返回为使用默认 RGB 颜色模型的过滤后的像素。

3.类 ImageFilter
此类为用于从 ImageProducer 向 ImageConsumer 传递数据的接口方法集合实现了一个过滤器。它应该与 FilteredImageSource 对象结合使用,以生成现有图像的过滤版本。它是一个基类,提供的方法并没有实际实现过滤功能,因此对通过的数据并没有任何作用,是一个“空过滤器”。过滤器应该创建此类的子类,并且重写那些处理需要过滤数据的方法并根据需要修改方法。

4.类 FilteredImageSource
此类是 ImageProducer 接口的一个实现,该接口使用现有的图像和过滤器对象作为参数,并使用它们为原图像的新过滤版本产生图像数据。下面的示例通过交换红色和蓝色分量来过滤图像:
Image src = getImage(“doc:///demo/images/duke/T1.gif”);
ImageFilter colorfilter = new RedBlueSwapFilter();
Image img = createImage(new FilteredImageSource(src.getSource(), colorfilter));

5.类 BufferedImage
BufferedImage 子类描述具有可访问图像数据缓冲区的 Image。BufferedImage 由图像数据的 ColorModel 和 Raster 组成。Raster 的 SampleModel 中 band 的数量和类型必须与 ColorModel 所要求的数量和类型相匹配,以表示其颜色和 alpha 分量。所有 BufferedImage 对象的左上角坐标都为 (0, 0)。因此,用来构造 BufferedImage 的任何 Raster 都必须满足:minX=0 且 minY=0。
此类依靠 Raster 的数据获取方法、数据设置方法,以及 ColorModel 的颜色特征化方法。

你可能感兴趣的:(java图像处理重要的类和方法)