Class ImageTypeSpecifier
- java.lang.Object
 -  
- javax.imageio.ImageTypeSpecifier
 
 
public class ImageTypeSpecifier extends Object
A class that allows the format of an image (in particular, its SampleModel and ColorModel) to be specified in a convenient manner.
Field Summary
| Modifier and Type | Field | Description | 
|---|---|---|
protected ColorModel |  colorModel |    The   |  
protected SampleModel |  sampleModel |    A   |  
Constructor Summary
| Constructor | Description | 
|---|---|
ImageTypeSpecifier(ColorModel colorModel,
                  SampleModel sampleModel) |    Constructs an   |  
ImageTypeSpecifier(RenderedImage image) |    Constructs an   |  
Method Summary
| Modifier and Type | Method | Description | 
|---|---|---|
static ImageTypeSpecifier |  createBanded(ColorSpace colorSpace,
            int[] bankIndices,
            int[] bandOffsets,
            int dataType,
            boolean hasAlpha,
            boolean isAlphaPremultiplied) |    Returns a specifier for a banded image format that will use a   |  
BufferedImage |  createBufferedImage(int width,
                   int height) |    Creates a   |  
static ImageTypeSpecifier |  createFromBufferedImageType(int bufferedImageType) |    Returns an   |  
static ImageTypeSpecifier |  createFromRenderedImage(RenderedImage image) |    Returns an   |  
static ImageTypeSpecifier |  createGrayscale(int bits,
               int dataType,
               boolean isSigned) |    Returns a specifier for a grayscale image format that will pack pixels of the given bit depth into array elements of the specified data type.  |  
static ImageTypeSpecifier |  createGrayscale(int bits,
               int dataType,
               boolean isSigned,
               boolean isAlphaPremultiplied) |    Returns a specifier for a grayscale plus alpha image format that will pack pixels of the given bit depth into array elements of the specified data type.  |  
static ImageTypeSpecifier |  createIndexed(byte[] redLUT,
             byte[] greenLUT,
             byte[] blueLUT,
             byte[] alphaLUT,
             int bits,
             int dataType) |    Returns a specifier for an indexed-color image format that will pack index values of the given bit depth into array elements of the specified data type.  |  
static ImageTypeSpecifier |  createInterleaved(ColorSpace colorSpace,
                 int[] bandOffsets,
                 int dataType,
                 boolean hasAlpha,
                 boolean isAlphaPremultiplied) |    Returns a specifier for an interleaved image format that will use a   |  
static ImageTypeSpecifier |  createPacked(ColorSpace colorSpace,
            int redMask,
            int greenMask,
            int blueMask,
            int alphaMask,
            int transferType,
            boolean isAlphaPremultiplied) |    Returns a specifier for a packed image format that will use a   |  
boolean |  equals(Object o) |    Returns   |  
int |  getBitsPerBand(int band) |    Return the number of bits used to represent samples of the given band.  |  
int |  getBufferedImageType() |    Returns an int containing one of the enumerated constant values describing image formats from   |  
ColorModel |  getColorModel() |    Returns the   |  
int |  getNumBands() |    Return the number of bands specified by this object.  |  
int |  getNumComponents() |    Return the number of color components specified by this object.  |  
SampleModel |  getSampleModel() |    Returns a   |  
SampleModel |  getSampleModel(int width,
              int height) |    Returns a   |  
int |  hashCode() |    Returns the hash code for this ImageTypeSpecifier.  |  
Methods declared in class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait  Field Detail
colorModel
protected ColorModel colorModel
The ColorModel to be used as a prototype.
sampleModel
protected SampleModel sampleModel
A SampleModel to be used as a prototype.
Constructor Detail
ImageTypeSpecifier
public ImageTypeSpecifier(ColorModel colorModel,
                          SampleModel sampleModel) Constructs an ImageTypeSpecifier directly from a ColorModel and a SampleModel. It is the caller's responsibility to supply compatible parameters.
- Parameters:
 - 
colorModel- aColorModel. - 
sampleModel- aSampleModel. - Throws:
 - 
IllegalArgumentException- if either parameter isnull. - 
IllegalArgumentException- ifsampleModelis not compatible withcolorModel. 
ImageTypeSpecifier
public ImageTypeSpecifier(RenderedImage image)
Constructs an ImageTypeSpecifier from a RenderedImage. If a BufferedImage is being used, one of the factory methods createFromRenderedImage or createFromBufferedImageType should be used instead in order to get a more accurate result.
- Parameters:
 - 
image- aRenderedImage. - Throws:
 - 
IllegalArgumentException- if the argument isnull. 
Method Detail
createPacked
public static ImageTypeSpecifier createPacked(ColorSpace colorSpace,
                                              int redMask,
                                              int greenMask,
                                              int blueMask,
                                              int alphaMask,
                                              int transferType,
                                              boolean isAlphaPremultiplied) Returns a specifier for a packed image format that will use a DirectColorModel and a packed SampleModel to store each pixel packed into in a single byte, short, or int.
- Parameters:
 - 
colorSpace- the desiredColorSpace. - 
redMask- a contiguous mask indicated the position of the red channel. - 
greenMask- a contiguous mask indicated the position of the green channel. - 
blueMask- a contiguous mask indicated the position of the blue channel. - 
alphaMask- a contiguous mask indicated the position of the alpha channel. - 
transferType- the desiredSampleModeltransfer type. - 
isAlphaPremultiplied-trueif the color channels will be premultipled by the alpha channel. - Returns:
 - an 
ImageTypeSpecifierwith the desired characteristics. - Throws:
 - 
IllegalArgumentException- ifcolorSpaceisnull. - 
IllegalArgumentException- ifcolorSpaceis not of typeTYPE_RGB. - 
IllegalArgumentException- if no mask has at least 1 bit set. - 
IllegalArgumentException- iftransferTypeif not one ofDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT, orDataBuffer.TYPE_INT. 
createInterleaved
public static ImageTypeSpecifier createInterleaved(ColorSpace colorSpace,
                                                   int[] bandOffsets,
                                                   int dataType,
                                                   boolean hasAlpha,
                                                   boolean isAlphaPremultiplied) Returns a specifier for an interleaved image format that will use a ComponentColorModel and a PixelInterleavedSampleModel to store each pixel component in a separate byte, short, or int.
- Parameters:
 - 
colorSpace- the desiredColorSpace. - 
bandOffsets- an array ofints indicating the offsets for each band. - 
dataType- the desired data type, as one of the enumerations from theDataBufferclass. - 
hasAlpha-trueif an alpha channel is desired. - 
isAlphaPremultiplied-trueif the color channels will be premultipled by the alpha channel. - Returns:
 - an 
ImageTypeSpecifierwith the desired characteristics. - Throws:
 - 
IllegalArgumentException- ifcolorSpaceisnull. - 
IllegalArgumentException- ifbandOffsetsisnull. - 
IllegalArgumentException- ifdataTypeis not one of the legalDataBuffer.TYPE_*constants. - 
IllegalArgumentException- ifbandOffsets.lengthdoes not equal the number of color space components, plus 1 ifhasAlphaistrue. 
createBanded
public static ImageTypeSpecifier createBanded(ColorSpace colorSpace,
                                              int[] bankIndices,
                                              int[] bandOffsets,
                                              int dataType,
                                              boolean hasAlpha,
                                              boolean isAlphaPremultiplied) Returns a specifier for a banded image format that will use a ComponentColorModel and a BandedSampleModel to store each channel in a separate array.
- Parameters:
 - 
colorSpace- the desiredColorSpace. - 
bankIndices- an array ofints indicating the bank in which each band will be stored. - 
bandOffsets- an array ofints indicating the starting offset of each band within its bank. - 
dataType- the desired data type, as one of the enumerations from theDataBufferclass. - 
hasAlpha-trueif an alpha channel is desired. - 
isAlphaPremultiplied-trueif the color channels will be premultipled by the alpha channel. - Returns:
 - an 
ImageTypeSpecifierwith the desired characteristics. - Throws:
 - 
IllegalArgumentException- ifcolorSpaceisnull. - 
IllegalArgumentException- ifbankIndicesisnull. - 
IllegalArgumentException- ifbandOffsetsisnull. - 
IllegalArgumentException- if the lengths ofbankIndicesandbandOffsetsdiffer. - 
IllegalArgumentException- ifbandOffsets.lengthdoes not equal the number of color space components, plus 1 ifhasAlphaistrue. - 
IllegalArgumentException- ifdataTypeis not one of the legalDataBuffer.TYPE_*constants. 
createGrayscale
public static ImageTypeSpecifier createGrayscale(int bits,
                                                 int dataType,
                                                 boolean isSigned) Returns a specifier for a grayscale image format that will pack pixels of the given bit depth into array elements of the specified data type.
- Parameters:
 - 
bits- the number of bits per gray value (1, 2, 4, 8, or 16). - 
dataType- the desired data type, as one of the enumerations from theDataBufferclass. - 
isSigned-trueif negative values are to be represented. - Returns:
 - an 
ImageTypeSpecifierwith the desired characteristics. - Throws:
 - 
IllegalArgumentException- ifbitsis not one of 1, 2, 4, 8, or 16. - 
IllegalArgumentException- ifdataTypeis not one ofDataBuffer.TYPE_BYTE,DataBuffer.TYPE_SHORT, orDataBuffer.TYPE_USHORT. - 
IllegalArgumentException- ifbitsis larger than the bit size of the givendataType. 
createGrayscale
public static ImageTypeSpecifier createGrayscale(int bits,
                                                 int dataType,
                                                 boolean isSigned,
                                                 boolean isAlphaPremultiplied) Returns a specifier for a grayscale plus alpha image format that will pack pixels of the given bit depth into array elements of the specified data type.
- Parameters:
 - 
bits- the number of bits per gray value (1, 2, 4, 8, or 16). - 
dataType- the desired data type, as one of the enumerations from theDataBufferclass. - 
isSigned-trueif negative values are to be represented. - 
isAlphaPremultiplied-trueif the luminance channel will be premultipled by the alpha channel. - Returns:
 - an 
ImageTypeSpecifierwith the desired characteristics. - Throws:
 - 
IllegalArgumentException- ifbitsis not one of 1, 2, 4, 8, or 16. - 
IllegalArgumentException- ifdataTypeis not one ofDataBuffer.TYPE_BYTE,DataBuffer.TYPE_SHORT, orDataBuffer.TYPE_USHORT. - 
IllegalArgumentException- ifbitsis larger than the bit size of the givendataType. 
createIndexed
public static ImageTypeSpecifier createIndexed(byte[] redLUT,
                                               byte[] greenLUT,
                                               byte[] blueLUT,
                                               byte[] alphaLUT,
                                               int bits,
                                               int dataType) Returns a specifier for an indexed-color image format that will pack index values of the given bit depth into array elements of the specified data type.
- Parameters:
 - 
redLUT- an array ofbytes containing the red values for each index. - 
greenLUT- an array ofbytes containing * the green values for each index. - 
blueLUT- an array ofbytes containing the blue values for each index. - 
alphaLUT- an array ofbytes containing the alpha values for each index, ornullto create a fully opaque LUT. - 
bits- the number of bits in each index. - 
dataType- the desired output type, as one of the enumerations from theDataBufferclass. - Returns:
 - an 
ImageTypeSpecifierwith the desired characteristics. - Throws:
 - 
IllegalArgumentException- ifredLUTisnull. - 
IllegalArgumentException- ifgreenLUTisnull. - 
IllegalArgumentException- ifblueLUTisnull. - 
IllegalArgumentException- ifbitsis not one of 1, 2, 4, 8, or 16. - 
IllegalArgumentException- if the non-nullLUT parameters do not have lengths of exactly1 << bits. - 
IllegalArgumentException- ifdataTypeis not one ofDataBuffer.TYPE_BYTE,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_USHORT, orDataBuffer.TYPE_INT. - 
IllegalArgumentException- ifbitsis larger than the bit size of the givendataType. 
createFromBufferedImageType
public static ImageTypeSpecifier createFromBufferedImageType(int bufferedImageType)
Returns an ImageTypeSpecifier that encodes one of the standard BufferedImage types (other than TYPE_CUSTOM).
- Parameters:
 - 
bufferedImageType- an int representing one of the standardBufferedImagetypes. - Returns:
 - an 
ImageTypeSpecifierwith the desired characteristics. - Throws:
 - 
IllegalArgumentException- ifbufferedImageTypeis not one of the standard types, or is equal toTYPE_CUSTOM. - See Also:
 - 
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)
Returns an ImageTypeSpecifier that encodes the layout of a RenderedImage (which may be a BufferedImage).
- Parameters:
 - 
image- aRenderedImage. - Returns:
 - an 
ImageTypeSpecifierwith the desired characteristics. - Throws:
 - 
IllegalArgumentException- ifimageisnull. 
getBufferedImageType
public int getBufferedImageType()
Returns an int containing one of the enumerated constant values describing image formats from BufferedImage.
- Returns:
 - an 
intrepresenting aBufferedImagetype. - See Also:
 - 
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()
Return the number of color components specified by this object. This is the same value as returned by ColorModel.getNumComponents
- Returns:
 - the number of components in the image.
 
getNumBands
public int getNumBands()
Return the number of bands specified by this object. This is the same value as returned by SampleModel.getNumBands
- Returns:
 - the number of bands in the image.
 
getBitsPerBand
public int getBitsPerBand(int band)
Return the number of bits used to represent samples of the given band.
- Parameters:
 - 
band- the index of the band to be queried, as an int. - Returns:
 - an int specifying a number of bits.
 - Throws:
 - 
IllegalArgumentException- ifbandis negative or greater than the largest band index. 
getSampleModel
public SampleModel getSampleModel()
Returns a SampleModel based on the settings encapsulated within this object. The width and height of the SampleModel will be set to arbitrary values.
- Returns:
 - a 
SampleModelwith arbitrary dimensions. 
getSampleModel
public SampleModel getSampleModel(int width,
                                  int height) Returns a SampleModel based on the settings encapsulated within this object. The width and height of the SampleModel will be set to the supplied values.
- Parameters:
 - 
width- the desired width of the returnedSampleModel. - 
height- the desired height of the returnedSampleModel. - Returns:
 - a 
SampleModelwith the given dimensions. - Throws:
 - 
IllegalArgumentException- if eitherwidthorheightare negative or zero. - 
IllegalArgumentException- if the product ofwidthandheightis greater thanInteger.MAX_VALUE 
getColorModel
public ColorModel getColorModel()
Returns the ColorModel specified by this object.
- Returns:
 - a 
ColorModel. 
createBufferedImage
public BufferedImage createBufferedImage(int width,
                                         int height) Creates a BufferedImage with a given width and height according to the specification embodied in this object.
- Parameters:
 - 
width- the desired width of the returnedBufferedImage. - 
height- the desired height of the returnedBufferedImage. - Returns:
 - a new 
BufferedImage - Throws:
 - 
IllegalArgumentException- if eitherwidthorheightare negative or zero. - 
IllegalArgumentException- if the product ofwidthandheightis greater thanInteger.MAX_VALUE, or if the number of array elements needed to store the image is greater thanInteger.MAX_VALUE. 
equals
public boolean equals(Object o)
Returns true if the given Object is an ImageTypeSpecifier and has a SampleModel and ColorModel that are equal to those of this object.
- Overrides:
 - 
equalsin classObject - Parameters:
 - 
o- theObjectto be compared for equality. - Returns:
 - 
trueif the given object is an equivalentImageTypeSpecifier. - See Also:
 - 
Object.hashCode(),HashMap 
hashCode
public int hashCode()
Returns the hash code for this ImageTypeSpecifier.
- Overrides:
 - 
hashCodein classObject - Returns:
 - a hash code for this ImageTypeSpecifier
 - See Also:
 - 
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)