java.lang.Object javax.imageio.ImageTypeSpecifier
public class ImageTypeSpecifier
允许以便捷方式指定图像格式(尤其是其 SampleModel
和 ColorModel
)的类。
字段摘要 | |
---|---|
protected ColorModel |
colorModel 将用作原型的 ColorModel 。 |
protected SampleModel |
sampleModel 将用作原型的 SampleModel 。 |
构造方法摘要 | |
---|---|
ImageTypeSpecifier(ColorModel colorModel, SampleModel sampleModel) 直接根据 ColorModel 和 SampleModel 构造一个 ImageTypeSpecifier 。 |
|
ImageTypeSpecifier(RenderedImage image) 根据 RenderedImage 构造一个 ImageTypeSpecifier 。 |
方法摘要 | |
---|---|
static ImageTypeSpecifier |
createBanded(ColorSpace colorSpace, int[] bankIndices, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied) 返回带状图像格式的说明符,它将使用 ComponentColorModel 和 BandedSampleModel 来存储单独数组中的每个通道。 |
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) 返回交错图像格式的说明符,它将使用 ComponentColorModel 和 PixelInterleavedSampleModel 来存储单个 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 并且具有与此对象相同的 SampleModel 和 ColorModel ,则返回 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 |
字段详细信息 |
---|
protected ColorModel colorModel
ColorModel
。
protected SampleModel sampleModel
SampleModel
。
构造方法详细信息 |
---|
public ImageTypeSpecifier(ColorModel colorModel, SampleModel sampleModel)
ColorModel
和
SampleModel
构造一个
ImageTypeSpecifier
。由调用者负责提供兼容的参数。
colorModel
- 一个
ColorModel
。
sampleModel
- 一个
SampleModel
。
IllegalArgumentException
- 如果任意一个参数为
null
。
IllegalArgumentException
- 如果
sampleModel
与
colorModel
不兼容。
public ImageTypeSpecifier(RenderedImage image)
RenderedImage
构造一个
ImageTypeSpecifier
。如果使用的是
BufferedImage
,为了获得更精确的结果,应该使用
createFromRenderedImage
或
createFromBufferedImageType
这两个工厂方法之一。
image
- 一个
RenderedImage
。
IllegalArgumentException
- 如果该参数为
null
。
方法详细信息 |
---|
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
- 如果
colorSpace
为
null
。
IllegalArgumentException
- 如果
colorSpace
的类型不是
TYPE_RGB
。
IllegalArgumentException
- 如果没有掩码至少有一个位集。
IllegalArgumentException
- 如果
transferType
不是
DataBuffer.TYPE_BYTE
、
DataBuffer.TYPE_USHORT
或
DataBuffer.TYPE_INT
之一。
public static ImageTypeSpecifier createInterleaved(ColorSpace colorSpace, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied)
ComponentColorModel
和
PixelInterleavedSampleModel
来存储单个 byte、short 或 int 值形式的每个像素组件。
colorSpace
- 所需的
ColorSpace
。
bandOffsets
- 指示每个 band 的偏移量的
int
数组。
dataType
- 所需的数据类型,它是
DataBuffer
类中的枚举之一。
hasAlpha
- 如果需要 alpha 通道,则该参数为
true
。
isAlphaPremultiplied
- 如果颜色通道将预乘以 alpha 通道,则该参数为
true
。
ImageTypeSpecifier
。
IllegalArgumentException
- 如果
colorSpace
为
null
。
IllegalArgumentException
- 如果
bandOffsets
为
null
。
IllegalArgumentException
- 如果
dataType
不是合法的
DataBuffer.TYPE_*
常量之一。
IllegalArgumentException
- 如果
bandOffsets.length
不等于颜色空间组件的数量;如果
hasAlpha
为
true
时,该长度不等于组件数量加 1。
public static ImageTypeSpecifier createBanded(ColorSpace colorSpace, int[] bankIndices, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied)
ComponentColorModel
和
BandedSampleModel
来存储单独数组中的每个通道。
colorSpace
- 所需的
ColorSpace
。
bankIndices
- 一个
int
数组,指示用来存储每个 band 的库。
bandOffsets
- 一个
int
数组,指示其库中每个 band 的起始偏移量。
dataType
- 所需的数据类型,它是
DataBuffer
类中的枚举之一。
hasAlpha
- 如果需要 alpha 通道,则该参数为
true
。
isAlphaPremultiplied
- 如果颜色通道将预乘以 alpha 通道,则该参数为
true
。
ImageTypeSpecifier
。
IllegalArgumentException
- 如果
colorSpace
为
null
。
IllegalArgumentException
- 如果
bankIndices
为
null
。
IllegalArgumentException
- 如果
bandOffsets
为
null
。
IllegalArgumentException
- 如果
bankIndices
和
bandOffsets
的长度不同。
IllegalArgumentException
- 如果
bandOffsets.length
不等于颜色空间组件的数量;如果
hasAlpha
为
true
时,该长度不等于组件数量加 1。
IllegalArgumentException
- 如果
dataType
不是合法的
DataBuffer.TYPE_*
常量之一。
public static ImageTypeSpecifier createGrayscale(int bits, int dataType, boolean isSigned)
bits
- 每个灰度值的位数(1、2、4、8 或 16)。
dataType
- 所需的数据类型,它是
DataBuffer
类中的枚举之一。
isSigned
- 如果要表示负值,则该参数为
true
。
ImageTypeSpecifier
。
IllegalArgumentException
- 如果
bits
不是 1、2、4、8 或 16 之一。
IllegalArgumentException
- 如果
dataType
不是
DataBuffer.TYPE_BYTE
、
DataBuffer.TYPE_SHORT
或
DataBuffer.TYPE_USHORT
之一。
IllegalArgumentException
- 如果
bits
大于给定
dataType
的位大小。
public static ImageTypeSpecifier createGrayscale(int bits, int dataType, boolean isSigned, boolean isAlphaPremultiplied)
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_BYTE
、
DataBuffer.TYPE_SHORT
或
DataBuffer.TYPE_USHORT
之一。
IllegalArgumentException
- 如果
bits
大于给定
dataType
的位大小。
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
- 如果
redLUT
为
null
。
IllegalArgumentException
- 如果
greenLUT
为
null
。
IllegalArgumentException
- 如果
blueLUT
为
null
。
IllegalArgumentException
- 如果
bits
不是 1、2、4、8 或 16 之一。
IllegalArgumentException
- 如果非
null
LUT 参数的长度不能正好满足
1 << bits
。
IllegalArgumentException
- 如果
dataType
不是
DataBuffer.TYPE_BYTE
、
DataBuffer.TYPE_SHORT
、
DataBuffer.TYPE_USHORT
或
DataBuffer.TYPE_INT
之一。
IllegalArgumentException
- 如果
bits
大于给定
dataType
的位大小。
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
public static ImageTypeSpecifier createFromRenderedImage(RenderedImage image)
ImageTypeSpecifier
,它将对
RenderedImage
(可能是
BufferedImage
)的布局进行编码。
image
- 一个
RenderedImage
。
ImageTypeSpecifier
。
IllegalArgumentException
- 如果
image
为
null
。
public int getBufferedImageType()
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
public int getNumComponents()
ColorModel.getNumComponents
返回的值。
public int getNumBands()
SampleModel.getNumBands
返回的值。
public int getBitsPerBand(int band)
band
- 将被查询的 band 的索引(int 值形式)。
IllegalArgumentException
- 如果
band
为负或大于最大 band 索引。
public SampleModel getSampleModel()
SampleModel
。
SampleModel
的宽度和高度将被设置为任意值。
SampleModel
。
public SampleModel getSampleModel(int width, int height)
SampleModel
。
SampleModel
的宽度和高度将被设置为所提供的值。
width
- 返回的
SampleModel
的所需宽度。
height
- 返回的
SampleModel
的所需高度。
SampleModel
。
IllegalArgumentException
- 如果
width
或
height
为负数或零。
IllegalArgumentException
- 如果
width
和
height
的值大于
Integer.MAX_VALUE
public ColorModel getColorModel()
ColorModel
。
ColorModel
。
public BufferedImage createBufferedImage(int width, int height)
BufferedImage
。
width
- 返回的
BufferedImage
的所需宽度。
height
- 返回的
BufferedImage
的所需高度。
BufferedImage
IllegalArgumentException
- 如果
width
或
height
为负数或零。
IllegalArgumentException
- 如果
width
和
height
的值大于
Integer.MAX_VALUE
,或者存储图像所需的数组元素数大于
Integer.MAX_VALUE
。
public boolean equals(Object o)
Object
是一个
ImageTypeSpecifier
并且具有与此对象相同的
SampleModel
和
ColorModel
,则返回
true
。
o
- 将用于相等性比较的
Object
。
ImageTypeSpecifier
,则返回
true
。
Object.hashCode()
,
Hashtable
public int hashCode()
Object.equals(java.lang.Object)
,
Hashtable