当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)

类 java.awt.image.RGBImageFilter

java.lang.Object
   |
   +----java.awt.image.ImageFilter
           |
           +----java.awt.image.RGBImageFilter

public abstract class RGBImageFilter
extends 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)); } } 

参见:
FilteredImageSource, ImageFilter, getRGBdefault

变量索引

canFilterIndexColorModel
该布尔值指示是否能将 filterRGB 方法的颜色过滤应用到某个 IndexColorModel 对象的颜色表项以便用像素过滤器替代像素。
newmodel
origmodel

构造子索引

RGBImageFilter()

方法索引

filterIndexColorModel(IndexColorModel)
用 RGBImageFilter 子类必须提供的 RGBImageFilter 函数,运行其颜色表中每项来过滤一个 IndexColorModel 对象。
filterRGB(int, int, int)
子类必须指定一个方法将缺省 RGB ColorModel 中的一个单个输入像素转换为一个单个输出像素。
filterRGBPixels(int, int, int, int, int[], int, int)
用 filterRGB 方法将缺省 RGB ColorModel 中的一个像素缓冲区一个个地传送来将其过滤。
setColorModel(ColorModel)
若 ColorModel 是一个 IndexColorModel 并且子类已设置 canFilterIndexColorModel 标志为 true , 则在此替换颜色模型的一个过滤的版本并将初始 ColorModel 对象显示在 setPixels 方法中。
setPixels(int, int, int, int, ColorModel, byte[], int, int)
若 ColorModel object 与已转换的相同,则简单地用已转换的 ColorModel 传送像素。
setPixels(int, int, int, int, ColorModel, int[], int, int)
若 ColorModel object 与已转换的相同,则简单地用已转换的 ColorModel 传送像素,否则将整数像素的缓冲区转换为缺省 RGB ColorModel 并将转换缓冲区传送给 filterRGBPixels 方法来一个个地转换。
substituteColorModel(ColorModel, ColorModel)
注册两个 ColorModel 对象以供替换。

变量

origmodel
 protected ColorModel origmodel
newmodel
 protected ColorModel newmodel
canFilterIndexColorModel
 protected boolean canFilterIndexColorModel
该布尔值指示是否能将 filterRGB 方法的颜色过滤应用到某个 IndexColorModel 对象的颜色表项以便用像素过滤器替代像素。 若子类的 filterRGB 不依靠正在过滤的像素的坐标,则子类应设置其构造子中的变量为 true 。

参见:
substituteColorModel, filterRGB, IndexColorModel

构造子

RGBImageFilter
 public RGBImageFilter()

方法

setColorModel
 public void setColorModel(ColorModel model)
若 ColorModel 是一个 IndexColorModel 并且子类已设置 canFilterIndexColorModel 标志为 true , 则在此替换颜色模型的过滤版本,并在 setPixels 方法中显示初始 ColorModel 对象,否则覆盖 ImageProducer 使用的缺省 ColorModel 并指定替换的缺省 RGB ColorModel 。

覆盖:
ImageFilter 中的 setColorModel
参见:
ImageConsumer, getRGBdefault
substituteColorModel
 public void substituteColorModel(ColorModel oldcm,
                                  ColorModel newcm)
注册两个 ColorModel 对象以供替换。在任何 setPixels 方法期间若遇到 oldcm ,则替换为 newcm 并将像素无损地传送出 (但带有新的 ColorModel 对象) 。

参数:
oldcm - fly 上待替换的 ColorModel 对象
newcm - fly 上待替换的 ColorModel 对象
filterIndexColorModel
 public IndexColorModel filterIndexColorModel(IndexColorModel icm)
用 RGBImageFilter 子类必须提供的 filterPGB 函数,通过该函数运行其颜色表中每项来过滤一个 IndexColorModel 对象。 坐标 -1 指示正在过滤颜色表项而非一个实际的像素值。

参数:
icm - 待过滤的 IndexColorModel 对象
返回值:
表示过滤的颜色的一个新 IndexColorModel
filterRGBPixels
 public void filterRGBPixels(int x,
                             int y,
                     int w,
                     int h,
                       int pixels[],
                   int off,
                     int scansize)
用 filterRGB 方法将缺省 RGB ColorModel 中的某像素缓冲区一个个地传送来将其过滤。

参见:
getRGBdefault, filterRGB
setPixels
 public void setPixels(int x,
                       int y,
                     int w,
                     int h,
                       ColorModel model,
                       byte pixels[],
                   int off,
                     int scansize)
若 ColorModel object 与已转换的相同,则简单地用已转换的 ColorModel 传送像素,否则将字节像素转换为缺省 RGB ColorModel , 并将转换的缓冲区传送给 filterRGBPixels 方法以便一个个地转换。

覆盖:
ImageFilter 中的 setPixels
参见:
getRGBdefault, filterRGBPixels
setPixels
 public void setPixels(int x,
                       int y,
                     int w,
                     int h,
                       ColorModel model,
                       int pixels[],
                   int off,
                     int scansize)
若 ColorModel object 与已转换的相同,则简单地用已转换的 ColorModel 传送像素,否则将整数像素的缓冲区转换为缺省 RGB ColorModel 并将转换的缓冲区传送给 filterRGBPixels 方法以便一个个地转换。将整数像素缓冲区转换为缺省 RGB ColorModel , 并将转换的缓冲区传送给 filterRGBPixels 方法。

覆盖:
ImageFilter 中的 setPixels
参见:
getRGBdefault, filterRGBPixels
filterRGB
 public abstract int filterRGB(int x,
                               int y,
                      int rgb)
子类必须指定一个方法将缺省 RGB ColorModel 中的单个输入像素转换为单个输出像素。

参见:
getRGBdefault, filterRGBPixels

当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)