所有类


javax.imageio
类 ImageTypeSpecifier

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 的位大小。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部