java.lang.Object
javax.imageio.ImageTypeSpecifier
一个允许以方便的方式指定图像格式(特别是其
SampleModel
和ColorModel
)的类。
-
Field Summary
Modifier and TypeFieldDescriptionprotected ColorModel
要用作原型的ColorModel
。protected SampleModel
要用作原型的SampleModel
。 -
Constructor Summary
ConstructorDescriptionImageTypeSpecifier
(ColorModel colorModel, SampleModel sampleModel) 直接从ColorModel
和SampleModel
构造一个ImageTypeSpecifier
。ImageTypeSpecifier
(RenderedImage image) 从RenderedImage
构造一个ImageTypeSpecifier
。 -
Method Summary
Modifier and TypeMethodDescriptionstatic ImageTypeSpecifier
createBanded
(ColorSpace colorSpace, int[] bankIndices, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied) 返回一个用于存储每个通道在单独数组中的ComponentColorModel
和BandedSampleModel
的分带图像格式的规范。createBufferedImage
(int width, int height) 根据此对象中体现的规范创建具有给定宽度和高度的BufferedImage
。static ImageTypeSpecifier
createFromBufferedImageType
(int bufferedImageType) 返回一个编码为标准BufferedImage
类型之一的ImageTypeSpecifier
(除了TYPE_CUSTOM
)。static ImageTypeSpecifier
返回一个编码为RenderedImage
布局的ImageTypeSpecifier
(可能是BufferedImage
)。static ImageTypeSpecifier
createGrayscale
(int bits, int dataType, boolean isSigned) 返回一个灰度图像格式的规范,将给定位深度的像素打包到指定数据类型的数组元素中。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
将每个像素分量存储在单独的字节、short或int中。static ImageTypeSpecifier
createPacked
(ColorSpace colorSpace, int redMask, int greenMask, int blueMask, int alphaMask, int transferType, boolean isAlphaPremultiplied) 返回一个打包图像格式的规范,将使用DirectColorModel
和打包的SampleModel
将每个像素打包到单个字节、short或int中。boolean
如果给定的Object
是一个ImageTypeSpecifier
,并且具有与此对象相同的SampleModel
和ColorModel
,则返回true
。int
getBitsPerBand
(int band) 返回用于表示给定波段样本的位数的位数。int
返回包含描述BufferedImage
的图像格式的枚举常量值之一的int。返回此对象指定的ColorModel
。int
返回此对象指定的波段数。int
返回此对象指定的颜色分量数。根据此对象封装的设置返回一个基于SampleModel
的SampleModel
。getSampleModel
(int width, int height) 根据此对象封装的设置返回一个基于SampleModel
的SampleModel
。int
hashCode()
返回此ImageTypeSpecifier的哈希码。
-
Field Details
-
colorModel
要用作原型的ColorModel
。 -
sampleModel
要用作原型的SampleModel
。
-
-
Constructor Details
-
ImageTypeSpecifier
直接从ColorModel
和SampleModel
构造一个ImageTypeSpecifier
。调用者有责任提供兼容的参数。- 参数:
-
colorModel
- 一个ColorModel
。 -
sampleModel
- 一个SampleModel
。 - 抛出:
-
IllegalArgumentException
- 如果任一参数为null
。 -
IllegalArgumentException
- 如果sampleModel
与colorModel
不兼容。
-
ImageTypeSpecifier
从RenderedImage
构造一个ImageTypeSpecifier
。如果使用BufferedImage
,应使用createFromRenderedImage
或createFromBufferedImageType
工厂方法之一,以获得更准确的结果。- 参数:
-
image
- 一个RenderedImage
。 - 抛出:
-
IllegalArgumentException
- 如果参数为null
。
-
-
Method Details
-
createPacked
public static ImageTypeSpecifier createPacked(ColorSpace colorSpace, int redMask, int greenMask, int blueMask, int alphaMask, int transferType, boolean isAlphaPremultiplied) 返回一个使用DirectColorModel
和打包的SampleModel
将每个像素打包到单个字节、short或int中的打包图像格式的规范。- 参数:
-
colorSpace
- 所需的ColorSpace
。 -
redMask
- 表示红色通道位置的连续掩码。 -
greenMask
- 表示绿色通道位置的连续掩码。 -
blueMask
- 表示蓝色通道位置的连续掩码。 -
alphaMask
- 表示alpha通道位置的连续掩码。 -
transferType
- 所需的SampleModel
传输类型。 -
isAlphaPremultiplied
- 如果颜色通道将由alpha通道预乘,则为true
。 - 返回:
-
具有所需特性的
ImageTypeSpecifier
。 - 抛出:
-
IllegalArgumentException
- 如果colorSpace
为null
。 -
IllegalArgumentException
- 如果colorSpace
不是TYPE_RGB
类型。 -
IllegalArgumentException
- 如果没有掩码至少有1位设置。 -
IllegalArgumentException
- 如果transferType
不是DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或DataBuffer.TYPE_INT
之一。
-
createInterleaved
public static ImageTypeSpecifier createInterleaved(ColorSpace colorSpace, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied) 返回一个使用ComponentColorModel
和PixelInterleavedSampleModel
将每个像素分量存储在单独的字节、short或int中的交错图像格式的规范。- 参数:
-
colorSpace
- 所需的ColorSpace
。 -
bandOffsets
- 一个表示每个波段偏移量的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。
-
createBanded
public static ImageTypeSpecifier createBanded(ColorSpace colorSpace, int[] bankIndices, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied) 返回一个使用ComponentColorModel
和BandedSampleModel
将每个通道存储在单独数组中的分带图像格式的规范。- 参数:
-
colorSpace
- 所需的ColorSpace
。 -
bankIndices
- 一个表示每个波段将存储在其中的银行的int
数组。 -
bandOffsets
- 一个表示每个波段在其银行内的起始偏移量的int
数组。 -
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
。 -
IllegalArgumentException
- 如果dataType
不是合法的DataBuffer.TYPE_*
常量之一。
-
createGrayscale
返回一个灰度图像格式的规范,将给定位深度的像素打包到指定数据类型的数组元素中。- 参数:
-
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
的位大小。
-
createGrayscale
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
的位大小。
-
createIndexed
public static ImageTypeSpecifier createIndexed(byte[] redLUT, byte[] greenLUT, byte[] blueLUT, byte[] alphaLUT, int bits, int dataType) 返回一个索引颜色图像格式的规范,将给定位深度的索引值打包到指定数据类型的数组元素中。- 参数:
-
redLUT
- 包含每个索引的红色值的byte
数组。 -
greenLUT
- 包含每个索引的绿色值的byte
数组。 -
blueLUT
- 包含每个索引的蓝色值的byte
数组。 -
alphaLUT
- 包含每个索引的alpha值的byte
数组,或者为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
的位大小。
-
createFromBufferedImageType
返回一个编码为标准BufferedImage
类型之一(除了TYPE_CUSTOM
)的ImageTypeSpecifier
。- 参数:
-
bufferedImageType
- 表示标准BufferedImage
类型之一的整数。 - 返回:
-
具有所需特征的
ImageTypeSpecifier
。 - 抛出:
-
IllegalArgumentException
- 如果bufferedImageType
不是标准类型之一,或等于TYPE_CUSTOM
。 - 参见:
-
createFromRenderedImage
返回一个编码为RenderedImage
的布局的ImageTypeSpecifier
(可能是BufferedImage
)。- 参数:
-
image
- 一个RenderedImage
。 - 返回:
-
具有所需特征的
ImageTypeSpecifier
。 - 抛出:
-
IllegalArgumentException
- 如果image
为null
。
-
getBufferedImageType
public int getBufferedImageType()返回一个包含描述来自BufferedImage
的图像格式的枚举常量值之一的int
。- 返回:
-
代表
BufferedImage
类型的int
。 - 参见:
-
getNumComponents
public int getNumComponents()返回此对象指定的颜色分量数。这与ColorModel.getNumComponents
返回的值相同。- 返回:
- 图像中的组件数。
-
getNumBands
public int getNumBands()返回此对象指定的波段数。这与SampleModel.getNumBands
返回的值相同。- 返回:
- 图像中的波段数。
-
getBitsPerBand
public int getBitsPerBand(int band) 返回用于表示给定波段样本的位数。- 参数:
-
band
- 要查询的波段索引,作为int类型。 - 返回:
- 一个指定位数的int类型。
- 抛出:
-
IllegalArgumentException
- 如果band
为负数或大于最大波段索引。
-
getSampleModel
返回一个基于此对象封装的设置的SampleModel
。SampleModel
的宽度和高度将设置为任意值。- 返回:
-
一个具有任意维度的
SampleModel
。
-
getSampleModel
返回一个基于此对象封装的设置的SampleModel
。SampleModel
的宽度和高度将设置为提供的值。- 参数:
-
width
- 返回的SampleModel
的期望宽度。 -
height
- 返回的SampleModel
的期望高度。 - 返回:
-
一个具有给定维度的
SampleModel
。 - 抛出:
-
IllegalArgumentException
- 如果width
或height
为负数或零。 -
IllegalArgumentException
- 如果width
和height
的乘积大于Integer.MAX_VALUE
。
-
getColorModel
返回此对象指定的ColorModel
。- 返回:
-
一个
ColorModel
。
-
createBufferedImage
根据此对象中体现的规范,创建具有给定宽度和高度的BufferedImage
。- 参数:
-
width
- 返回的BufferedImage
的期望宽度。 -
height
- 返回的BufferedImage
的期望高度。 - 返回:
-
一个新的
BufferedImage
- 抛出:
-
IllegalArgumentException
- 如果width
或height
为负数或零。 -
IllegalArgumentException
- 如果width
和height
的乘积大于Integer.MAX_VALUE
,或者如果存储图像所需的数组元素数量大于Integer.MAX_VALUE
。
-
equals
如果给定的Object
是一个ImageTypeSpecifier
,并且具有与此对象相等的SampleModel
和ColorModel
,则返回true
。 -
hashCode
public int hashCode()返回此ImageTypeSpecifier的哈希码。
-