javax.imageio

接口
异常
java.lang.Object
  继承者 javax.imageio.ImageTypeSpecifier

public class ImageTypeSpecifier
     
extends Object

允许以便捷方式指定图像格式(尤其是其 SampleModelColorModel)的类。


字段摘要
protected  ColorModel colorModel
          将用作原型的 ColorModel
protected  SampleModel sampleModel
          将用作原型的 SampleModel
 
构造方法摘要
ImageTypeSpecifier(ColorModel colorModel, SampleModel sampleModel)
          直接根据 ColorModelSampleModel 构造一个 ImageTypeSpecifier
ImageTypeSpecifier(RenderedImage image)
          根据 RenderedImage 构造一个 ImageTypeSpecifier
 
方法摘要
static ImageTypeSpecifier createBanded(ColorSpace colorSpace, int[] bankIndices, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied)
          返回带状图像格式的说明符,它将使用 ComponentColorModelBandedSampleModel 来存储单独数组中的每个通道。
 BufferedImage createBufferedImage(int width, int height)
          根据此对象中包含的规范创建一个具有给定宽度和高度的 BufferedImage
static ImageTypeSpecifier createFromBufferedImageType(int bufferedImageType)
          返回一个 ImageTypeSpecifier,它将对某一标准 BufferedImage 类型(而不是 TYPE_CUSTOM)进行编码。
static ImageTypeSpecifier createFromRenderedImage(RenderedImage image)
          返回一个 ImageTypeSpecifier,它将对 RenderedImage(可能是 BufferedImage)的布局进行编码。
static ImageTypeSpecifier createGrayscale(int bits, int dataType, boolean isSigned)
          返回灰度级图像格式的说明符,它会将给定位深 (bit depth) 的像素压缩成指定数据类型的数组元素。
static ImageTypeSpecifier createGrayscale(int bits, int dataType, boolean isSigned, boolean isAlphaPremultiplied)
          返回灰度级图像格式和 alpha 图像格式的说明符,它会将给定位深的像素压缩成指定数据类型的数组元素。
static ImageTypeSpecifier createIndexed(byte[] redLUT, byte[] greenLUT, byte[] blueLUT, byte[] alphaLUT, int bits, int dataType)
          返回索引颜色图像格式的说明符,它将给定位深的索引值压缩成指定数据类型的数组元素。
static ImageTypeSpecifier createInterleaved(ColorSpace colorSpace, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied)
          返回交错图像格式的说明符,它将使用 ComponentColorModelPixelInterleavedSampleModel 来存储单个 byte、short 或 int 值形式的每个像素组件。
static ImageTypeSpecifier createPacked(ColorSpace colorSpace, int redMask, int greenMask, int blueMask, int alphaMask, int transferType, boolean isAlphaPremultiplied)
          返回压缩图像格式的说明符,它将使用 DirectColorModel 和一个压缩的 SampleModel 来存储压缩成单个 byte、short 或 int 值的像素。
 boolean equals(Object o)
          如果给定 Object 是一个 ImageTypeSpecifier 并且具有与此对象相同的 SampleModelColorModel,则返回 true
 int getBitsPerBand(int band)
          返回用来表示给定 band 样本的位数。
 int getBufferedImageType()
          返回一个 int 值,它包含某一来自 BufferedImage 的描述图像的枚举常量值。
 ColorModel getColorModel()
          返回此对象指定的 ColorModel
 int getNumBands()
          返回此对象指定的 band 数。
 int getNumComponents()
          返回此对象指定的颜色组件的数量。
 SampleModel getSampleModel()
          根据此对象中封装的设置返回一个 SampleModel
 SampleModel getSampleModel(int width, int height)
          根据此对象中封装的设置值返回一个 SampleModel
 int hashCode()
          返回此 ImageTypeSpecifier 的哈希码。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

colorModel

protected ColorModel colorModel
将用作原型的 ColorModel


sampleModel

protected SampleModel sampleModel
将用作原型的 SampleModel

构造方法详细信息

ImageTypeSpecifier

public ImageTypeSpecifier(ColorModel colorModel,
                          SampleModel sampleModel)
直接根据 ColorModelSampleModel 构造一个 ImageTypeSpecifier。由调用者负责提供兼容的参数。

参数:
colorModel - 一个 ColorModel
sampleModel - 一个 SampleModel
抛出:
IllegalArgumentException - 如果任意一个参数为 null
IllegalArgumentException - 如果 sampleModelcolorModel 不兼容。

ImageTypeSpecifier

public ImageTypeSpecifier(RenderedImage image)
根据 RenderedImage 构造一个 ImageTypeSpecifier。如果使用的是 BufferedImage,为了获得更精确的结果,应该使用 createFromRenderedImagecreateFromBufferedImageType 这两个工厂方法之一。

参数:
image - 一个 RenderedImage
抛出:
IllegalArgumentException - 如果该参数为 null
方法详细信息

createPacked

public static ImageTypeSpecifier createPacked(ColorSpace colorSpace,
                                              int redMask,
                                              int greenMask,
                                              int blueMask,
                                              int alphaMask,
                                              int transferType,
                                              boolean isAlphaPremultiplied)
返回压缩图像格式的说明符,它将使用 DirectColorModel 和一个压缩的 SampleModel 来存储压缩成单个 byte、short 或 int 值的像素。

参数:
colorSpace - 所需的 ColorSpace
redMask - 指示红色通道位置的邻接掩码。
greenMask - 指示绿色通道位置的邻接掩码。
blueMask - 指示蓝色通道位置的邻接掩码。
alphaMask - 指示 alpha 通道位置的邻接掩码。
transferType - 所需的 SampleModel 传输类型。
isAlphaPremultiplied - 如果颜色通道将预乘以 alpha 通道,则该参数为 true
返回:
具有所需特征的 ImageTypeSpecifier
抛出:
IllegalArgumentException - 如果 colorSpacenull
IllegalArgumentException - 如果 colorSpace 的类型不是 TYPE_RGB
IllegalArgumentException - 如果没有掩码至少有一个位集。
IllegalArgumentException - 如果 transferType 不是 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT 之一。

createInterleaved

public static ImageTypeSpecifier createInterleaved(ColorSpace colorSpace,
                                                   int[] bandOffsets,
                                                   int dataType,
                                                   boolean hasAlpha,
                                                   boolean isAlphaPremultiplied)
返回交错图像格式的说明符,它将使用 ComponentColorModelPixelInterleavedSampleModel 来存储单个 byte、short 或 int 值形式的每个像素组件。

参数:
colorSpace - 所需的 ColorSpace
bandOffsets - 指示每个 band 的偏移量的 int 数组。
dataType - 所需的数据类型,它是 DataBuffer 类中的枚举之一。
hasAlpha - 如果需要 alpha 通道,则该参数为 true
isAlphaPremultiplied - 如果颜色通道将预乘以 alpha 通道,则该参数为 true
返回:
具有所需特征的 ImageTypeSpecifier
抛出:
IllegalArgumentException - 如果 colorSpacenull
IllegalArgumentException - 如果 bandOffsetsnull
IllegalArgumentException - 如果 dataType 不是合法的 DataBuffer.TYPE_* 常量之一。
IllegalArgumentException - 如果 bandOffsets.length 不等于颜色空间组件的数量;如果 hasAlphatrue 时,该长度不等于组件数量加 1。

createBanded

public static ImageTypeSpecifier createBanded(ColorSpace colorSpace,
                                              int[] bankIndices,
                                              int[] bandOffsets,
                                              int dataType,
                                              boolean hasAlpha,
                                              boolean isAlphaPremultiplied)
返回带状图像格式的说明符,它将使用 ComponentColorModelBandedSampleModel 来存储单独数组中的每个通道。

参数:
colorSpace - 所需的 ColorSpace
bankIndices - 一个 int 数组,指示用来存储每个 band 的库。
bandOffsets - 一个 int 数组,指示其库中每个 band 的起始偏移量。
dataType - 所需的数据类型,它是 DataBuffer 类中的枚举之一。
hasAlpha - 如果需要 alpha 通道,则该参数为 true
isAlphaPremultiplied - 如果颜色通道将预乘以 alpha 通道,则该参数为 true
返回:
具有所需特征的 ImageTypeSpecifier
抛出:
IllegalArgumentException - 如果 colorSpacenull
IllegalArgumentException - 如果 bankIndicesnull
IllegalArgumentException - 如果 bandOffsetsnull
IllegalArgumentException - 如果 bankIndicesbandOffsets 的长度不同。
IllegalArgumentException - 如果 bandOffsets.length 不等于颜色空间组件的数量;如果 hasAlphatrue 时,该长度不等于组件数量加 1。
IllegalArgumentException - 如果 dataType 不是合法的 DataBuffer.TYPE_* 常量之一。

createGrayscale

public static ImageTypeSpecifier createGrayscale(int bits,
                                                 int dataType,
                                                 boolean isSigned)
返回灰度级图像格式的说明符,它会将给定位深 (bit depth) 的像素压缩成指定数据类型的数组元素。

参数:
bits - 每个灰度值的位数(1、2、4、8 或 16)。
dataType - 所需的数据类型,它是 DataBuffer 类中的枚举之一。
isSigned - 如果要表示负值,则该参数为 true
返回:
具有所需特征的 ImageTypeSpecifier
抛出:
IllegalArgumentException - 如果 bits 不是 1、2、4、8 或 16 之一。
IllegalArgumentException - 如果 dataType 不是 DataBuffer.TYPE_BYTEDataBuffer.TYPE_SHORTDataBuffer.TYPE_USHORT 之一。
IllegalArgumentException - 如果 bits 大于给定 dataType 的位大小。

createGrayscale

public static ImageTypeSpecifier createGrayscale(int bits,
                                                 int dataType,
                                                 boolean isSigned,
                                                 boolean isAlphaPremultiplied)
返回灰度级图像格式和 alpha 图像格式的说明符,它会将给定位深的像素压缩成指定数据类型的数组元素。

参数:
bits - 每个灰度值的位数(1、2、4、8 或 16)。
dataType - 所需的数据类型,它是 DataBuffer 类中的枚举之一。
isSigned - 如果要表示负值,则该参数为 true
isAlphaPremultiplied - 如果亮度通道将乘以 alpha 通道,则该参数为 true
返回:
具有所需特征的 ImageTypeSpecifier
抛出:
IllegalArgumentException - 如果 bits 不是 1、2、4、8 或 16 之一。
IllegalArgumentException - 如果 dataType 不是 DataBuffer.TYPE_BYTEDataBuffer.TYPE_SHORTDataBuffer.TYPE_USHORT 之一。
IllegalArgumentException - 如果 bits 大于给定 dataType 的位大小。

createIndexed

public static ImageTypeSpecifier createIndexed(byte[] redLUT,
                                               byte[] greenLUT,
                                               byte[] blueLUT,
                                               byte[] alphaLUT,
                                               int bits,
                                               int dataType)
返回索引颜色图像格式的说明符,它将给定位深的索引值压缩成指定数据类型的数组元素。

参数:
redLUT - 一个 byte 数组,包含每个索引的 red 值。
greenLUT - 一个 byte 数组,包含每个索引的 green 值。
blueLUT - 一个 byte 数组,包含每个索引的 blue 值。
alphaLUT - 一个 byte 数组,包含每个索引的 alpha 值;或者为 null,表示创建一个完全不透明的 LUT。
bits - 每个索引中的位数。
dataType - 所需的输出类型,它是 DataBuffer 类中的枚举之一。
返回:
具有所需特征的 ImageTypeSpecifier
抛出:
IllegalArgumentException - 如果 redLUTnull
IllegalArgumentException - 如果 greenLUTnull
IllegalArgumentException - 如果 blueLUTnull
IllegalArgumentException - 如果 bits 不是 1、2、4、8 或 16 之一。
IllegalArgumentException - 如果非 null LUT 参数的长度不能正好满足 1 << bits
IllegalArgumentException - 如果 dataType 不是 DataBuffer.TYPE_BYTEDataBuffer.TYPE_SHORTDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT 之一。
IllegalArgumentException - 如果 bits 大于给定 dataType 的位大小。

createFromBufferedImageType

public static ImageTypeSpecifier createFromBufferedImageType(int bufferedImageType)
返回一个 ImageTypeSpecifier,它将对某一标准 BufferedImage 类型(而不是 TYPE_CUSTOM)进行编码。

参数:
bufferedImageType - 表示某一标准 BufferedImage 类型的 int 值。
返回:
具有所需特征的 ImageTypeSpecifier
抛出:
IllegalArgumentException - 如果 bufferedImageType 不是标准类型之一,或者它等于 TYPE_CUSTOM
另请参见:
BufferedImage, BufferedImage.TYPE_INT_RGB, BufferedImage.TYPE_INT_ARGB, BufferedImage.TYPE_INT_ARGB_PRE, BufferedImage.TYPE_INT_BGR, BufferedImage.TYPE_3BYTE_BGR, BufferedImage.TYPE_4BYTE_ABGR, BufferedImage.TYPE_4BYTE_ABGR_PRE, BufferedImage.TYPE_USHORT_565_RGB, BufferedImage.TYPE_USHORT_555_RGB, BufferedImage.TYPE_BYTE_GRAY, BufferedImage.TYPE_USHORT_GRAY, BufferedImage.TYPE_BYTE_BINARY, BufferedImage.TYPE_BYTE_INDEXED

createFromRenderedImage

public static ImageTypeSpecifier createFromRenderedImage(RenderedImage image)
返回一个 ImageTypeSpecifier,它将对 RenderedImage(可能是 BufferedImage)的布局进行编码。

参数:
image - 一个 RenderedImage
返回:
具有所需特征的 ImageTypeSpecifier
抛出:
IllegalArgumentException - 如果 imagenull

getBufferedImageType

public int getBufferedImageType()
返回一个 int 值,它包含某一来自 BufferedImage 的描述图像的枚举常量值。

返回:
表示 BufferedImage 类型的 int
另请参见:
BufferedImage, BufferedImage.TYPE_CUSTOM, BufferedImage.TYPE_INT_RGB, BufferedImage.TYPE_INT_ARGB, BufferedImage.TYPE_INT_ARGB_PRE, BufferedImage.TYPE_INT_BGR, BufferedImage.TYPE_3BYTE_BGR, BufferedImage.TYPE_4BYTE_ABGR, BufferedImage.TYPE_4BYTE_ABGR_PRE, BufferedImage.TYPE_USHORT_565_RGB, BufferedImage.TYPE_USHORT_555_RGB, BufferedImage.TYPE_BYTE_GRAY, BufferedImage.TYPE_USHORT_GRAY, BufferedImage.TYPE_BYTE_BINARY, BufferedImage.TYPE_BYTE_INDEXED

getNumComponents

public int getNumComponents()
返回此对象指定的颜色组件的数量。该数量等于 ColorModel.getNumComponents 返回的值。

返回:
图像中的组件数。

getNumBands

public int getNumBands()
返回此对象指定的 band 数。该数量等于 SampleModel.getNumBands 返回的值。

返回:
图像中的 band 数。

getBitsPerBand

public int getBitsPerBand(int band)
返回用来表示给定 band 样本的位数。

参数:
band - 将被查询的 band 的索引(int 值形式)。
返回:
指定位数的 int 值。
抛出:
IllegalArgumentException - 如果 band 为负或大于最大 band 索引。

getSampleModel

public SampleModel getSampleModel()
根据此对象中封装的设置返回一个 SampleModelSampleModel 的宽度和高度将被设置为任意值。

返回:
具有任意维数的 SampleModel

getSampleModel

public SampleModel getSampleModel(int width,
                                  int height)
根据此对象中封装的设置值返回一个 SampleModelSampleModel 的宽度和高度将被设置为所提供的值。

参数:
width - 返回的 SampleModel 的所需宽度。
height - 返回的 SampleModel 的所需高度。
返回:
具有给定维数的 SampleModel
抛出:
IllegalArgumentException - 如果 widthheight 为负数或零。
IllegalArgumentException - 如果 widthheight 的值大于 Integer.MAX_VALUE

getColorModel

public ColorModel getColorModel()
返回此对象指定的 ColorModel

返回:
一个 ColorModel

createBufferedImage

public BufferedImage createBufferedImage(int width,
                                         int height)
根据此对象中包含的规范创建一个具有给定宽度和高度的 BufferedImage

参数:
width - 返回的 BufferedImage 的所需宽度。
height - 返回的 BufferedImage 的所需高度。
返回:
一个新的 BufferedImage
抛出:
IllegalArgumentException - 如果 widthheight 为负数或零。
IllegalArgumentException - 如果 widthheight 的值大于 Integer.MAX_VALUE,或者存储图像所需的数组元素数大于 Integer.MAX_VALUE

equals

public boolean equals(Object o)
如果给定 Object 是一个 ImageTypeSpecifier 并且具有与此对象相同的 SampleModelColorModel,则返回 true

覆盖:
Object 中的 equals
参数:
o - 将用于相等性比较的 Object
返回:
如果给定对象是一个等价的 ImageTypeSpecifier,则返回 true
另请参见:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此 ImageTypeSpecifier 的哈希码。

覆盖:
Object 中的 hashCode
返回:
此 ImageTypeSpecifier 的哈希码
另请参见:
Object.equals(java.lang.Object), Hashtable