|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 RGBImageFilter
java.lang.Object java.awt.image.ImageFilter java.awt.image.RGBImageFilter
- 所有已实现的接口:
- ImageConsumer, Cloneable
- 直接已知子类:
- GrayFilter
-
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)); } }
字段摘要 | |
---|---|
protected boolean |
canFilterIndexColorModel 此布尔值指示是否可以接受用 filterRGB 方法的颜色过滤替代逐像素过滤,将它应用于 IndexColorModel 对象的颜色表项。 |
protected ColorModel |
newmodel 用户调用 substituteColorModel 时替换 origmodel 的 ColorModel 。 |
protected ColorModel |
origmodel 用户调用 substituteColorModel 时将由 newmodel 替换的 ColorModel 。 |
从类 java.awt.image.ImageFilter 继承的字段 |
---|
consumer |
从接口 java.awt.image.ImageConsumer 继承的字段 |
---|
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT |
构造方法摘要 | |
---|---|
RGBImageFilter() |
方法摘要 | |
---|---|
IndexColorModel |
filterIndexColorModel(IndexColorModel icm) 过滤 IndexColorModel 对象,实现方式是通过 RGBImageFilter 子类必须提供的 filterRGB 方法运行该对象颜色表中的每一个项。 |
abstract int |
filterRGB(int x, int y, int rgb) 子类必须指定该方法将默认 RGB ColorModel 中的单个输入像素转换成单个输出像素。 |
void |
filterRGBPixels(int x, int y, int w, int h, int[] pixels, int off, int scansize) 通过将缓冲区中默认 RGB ColorModel 的像素一个接一个地传递给 filterRGB 方法来过滤这些像素。 |
void |
setColorModel(ColorModel model) 如果 ColorModel 是 IndexColorModel 且子类将 canFilterIndexColorModel 标志设置为 true,则将这里和 setPixels 方法中任何出现原始 ColorModel 对象的地方替换为过滤后的颜色模型。 |
void |
setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize) 如果 ColorModel 对象与已转换的对象相同,则只使用转换后的 ColorModel 传递像素。 |
void |
setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize) 如果 ColorModel 对象与已转换的对象相同,则只使用转换后的 ColorModel 传递像素,否则将整数像素的缓冲区转换为默认 RGB ColorModel,并将转换后的缓冲区传递给 filterRGBPixels 方法进行逐一转换。 |
void |
substituteColorModel(ColorModel oldcm, ColorModel newcm) 注册两个用于替换的 ColorModel 对象。 |
从类 java.awt.image.ImageFilter 继承的方法 |
---|
clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties |
从类 java.lang.Object 继承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
origmodel
protected ColorModel origmodel
-
用户调用
substituteColorModel
时将由newmodel
替换的ColorModel
。
newmodel
protected ColorModel newmodel
-
用户调用
substituteColorModel
时替换origmodel
的ColorModel
。
canFilterIndexColorModel
protected boolean canFilterIndexColorModel
- 此布尔值指示是否可以接受用 filterRGB 方法的颜色过滤替代逐像素过滤,将它应用于 IndexColorModel 对象的颜色表项。如果子类的 filterRGB 并不取决于过滤像素的坐标,则子类应在其构造方法中将此变量设置为 true。
构造方法详细信息 |
---|
RGBImageFilter
public RGBImageFilter()
方法详细信息 |
---|
setColorModel
public void setColorModel(ColorModel model)
-
如果 ColorModel 是 IndexColorModel 且子类将 canFilterIndexColorModel 标志设置为 true,则将这里和 setPixels 方法中任何出现原始 ColorModel 对象的地方替换为过滤后的颜色模型。如果 ColorModel 不是 IndexColorModel 或者为 null,则此方法重写由 ImageProducer 使用的默认 ColorModel,并指定默认 RGB ColorModel 替代它。
注:此方法应由其像素正被过滤的
Image
的ImageProducer
调用。使用此类过滤图像像素的开发人员应该避免直接调用此方法,因为该操作可能干扰过滤操作。 -
- 指定者:
-
接口
ImageConsumer
中的setColorModel
- 覆盖:
-
类
ImageFilter
中的setColorModel
-
- 参数:
-
model
- 指定的ColorModel
- 另请参见:
-
ImageConsumer
,ColorModel.getRGBdefault()
substituteColorModel
public void substituteColorModel(ColorModel oldcm, ColorModel newcm)
- 注册两个用于替换的 ColorModel 对象。如果在运行 setPixels 方法期间遇到 oldcm,则用 newcm 替换它,并不加变动地传递像素(除了新 ColorModel 对象之外)。
-
- 参数:
-
oldcm
- 运行中要被替换的 ColorModel 对象 -
newcm
- 运行中替换 oldcm 的 ColorModel 对象
filterIndexColorModel
public IndexColorModel filterIndexColorModel(IndexColorModel icm)
- 过滤 IndexColorModel 对象,实现方式是通过 RGBImageFilter 子类必须提供的 filterRGB 方法运行该对象颜色表中的每一个项。使用坐标 -1 指示正过滤的是颜色表项,而不是实际像素值。
-
- 参数:
-
icm
- 要过滤的 IndexColorModel 对象 - 返回:
- 表示已过滤颜色的新 IndexColorModel
- 抛出:
-
NullPointerException
- 如果icm
为 null
filterRGBPixels
public void filterRGBPixels(int x, int y, int w, int h, int[] pixels, int off, int scansize)
- 通过将缓冲区中默认 RGB ColorModel 的像素一个接一个地传递给 filterRGB 方法来过滤这些像素。
-
- 参数:
-
x, y
- 像素区域左上角的坐标 -
w
- 像素区域的宽度 -
h
- 像素区域的高度 -
pixels
- 像素数组 -
off
-pixels
数组中的偏移量 -
scansize
- 数组中从一行像素到下一行像素的距离 - 另请参见:
-
ColorModel.getRGBdefault()
,filterRGB(int, int, int)
setPixels
public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
-
如果 ColorModel 对象与已转换的对象相同,则只使用转换后的 ColorModel 传递像素。否则将字节像素的缓冲区转换为默认 RGB ColorModel,并将转换后的缓冲区传递给 filterRGBPixels 方法进行逐一转换。
注:此方法应由其像素正被过滤的
Image
的ImageProducer
调用。使用此类过滤图像像素的开发人员应该避免直接调用此方法,因为该操作可能干扰过滤操作。 -
- 指定者:
-
接口
ImageConsumer
中的setPixels
- 覆盖:
-
类
ImageFilter
中的setPixels
-
-
w
- 像素区域的宽度 -
h
- 像素区域的高度 -
model
- 指定的ColorModel
-
pixels
- 像素数组 -
off
-pixels
数组中的偏移量 -
scansize
-pixels
数组中一行像素到下一行的距离 - 另请参见:
-
ColorModel.getRGBdefault()
,filterRGBPixels(int, int, int, int, int[], int, int)
-