Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.imageio
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
`protected ColorModel` | `colorModel` The `ColorModel` to be used as a prototype.
`protected SampleModel` | `sampleModel` A `SampleModel` to be used as a prototype.

Constructor Summary
`ImageTypeSpecifier(ColorModel colorModel, SampleModel sampleModel)` Constructs an `ImageTypeSpecifier` directly from a `ColorModel` and a `SampleModel`.
`ImageTypeSpecifier(RenderedImage image)` Constructs an `ImageTypeSpecifier` from a `RenderedImage`.

Method Summary
`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.
`BufferedImage` | `createBufferedImage(int width, int height)` Creates a `BufferedImage` with a given width and height according to the specification embodied in this object.
`static ImageTypeSpecifier` | `createFromBufferedImageType(int bufferedImageType)` Returns an `ImageTypeSpecifier` that encodes one of the standard `BufferedImage` types (other than `TYPE_CUSTOM`).
`static ImageTypeSpecifier` | `createFromRenderedImage(RenderedImage image)` Returns an `ImageTypeSpecifier` that encodes the layout of a `RenderedImage` (which may be a `BufferedImage`).
`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 `ComponentColorModel` and a `PixelInterleavedSampleModel` to store each pixel component in a separate byte, short, or int.
`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.
`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.
`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 `BufferedImage`.
`ColorModel` | `getColorModel()` Returns the `ColorModel` specified by this object.
`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` based on the settings encapsulated within this object.
`SampleModel` | `getSampleModel(int width, int height)` Returns a `SampleModel` based on the settings encapsulated within this object.
`int` | `hashCode()` Returns the hash code for this ImageTypeSpecifier.

Methods inherited from 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` - a `ColorModel`.
    `sampleModel` - a `SampleModel`.
  Throws:
    `IllegalArgumentException` - if either parameter is `null`.
    `IllegalArgumentException` - if `sampleModel` is not compatible with `colorModel`.

### 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` - a `RenderedImage`.
  Throws:
    `IllegalArgumentException` - if the argument is `null`.

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 desired `ColorSpace`.
    `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 desired `SampleModel` transfer type.
    `isAlphaPremultiplied` - `true` if the color channels will be premultipled by the alpha channel.
  Returns:
    an `ImageTypeSpecifier` with the desired characteristics.
  Throws:
    `IllegalArgumentException` - if `colorSpace` is `null`.
    `IllegalArgumentException` - if `colorSpace` is not of type `TYPE_RGB`.
    `IllegalArgumentException` - if no mask has at least 1 bit set.
    `IllegalArgumentException` - if `transferType` if not one of `DataBuffer.TYPE_BYTE`, `DataBuffer.TYPE_USHORT`, or `DataBuffer.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 desired `ColorSpace`.
    `bandOffsets` - an array of `int`s indicating the offsets for each band.
    `dataType` - the desired data type, as one of the enumerations from the `DataBuffer` class.
    `hasAlpha` - `true` if an alpha channel is desired.
    `isAlphaPremultiplied` - `true` if the color channels will be premultipled by the alpha channel.
  Returns:
    an `ImageTypeSpecifier` with the desired characteristics.
  Throws:
    `IllegalArgumentException` - if `colorSpace` is `null`.
    `IllegalArgumentException` - if `bandOffsets` is `null`.
    `IllegalArgumentException` - if `dataType` is not one of the legal `DataBuffer.TYPE_*` constants.
    `IllegalArgumentException` - if `bandOffsets.length` does not equal the number of color space components, plus 1 if `hasAlpha` is `true`.

### 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 desired `ColorSpace`.
    `bankIndices` - an array of `int`s indicating the bank in which each band will be stored.
    `bandOffsets` - an array of `int`s indicating the starting offset of each band within its bank.
    `dataType` - the desired data type, as one of the enumerations from the `DataBuffer` class.
    `hasAlpha` - `true` if an alpha channel is desired.
    `isAlphaPremultiplied` - `true` if the color channels will be premultipled by the alpha channel.
  Returns:
    an `ImageTypeSpecifier` with the desired characteristics.
  Throws:
    `IllegalArgumentException` - if `colorSpace` is `null`.
    `IllegalArgumentException` - if `bankIndices` is `null`.
    `IllegalArgumentException` - if `bandOffsets` is `null`.
    `IllegalArgumentException` - if the lengths of `bankIndices` and `bandOffsets` differ.
    `IllegalArgumentException` - if `bandOffsets.length` does not equal the number of color space components, plus 1 if `hasAlpha` is `true`.
    `IllegalArgumentException` - if `dataType` is not one of the legal `DataBuffer.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 the `DataBuffer` class.
    `isSigned` - `true` if negative values are to be represented.
  Returns:
    an `ImageTypeSpecifier` with the desired characteristics.
  Throws:
    `IllegalArgumentException` - if `bits` is not one of 1, 2, 4, 8, or 16.
    `IllegalArgumentException` - if `dataType` is not one of `DataBuffer.TYPE_BYTE`, `DataBuffer.TYPE_SHORT`, or `DataBuffer.TYPE_USHORT`.
    `IllegalArgumentException` - if `bits` is larger than the bit size of the given `dataType`.

### 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 the `DataBuffer` class.
    `isSigned` - `true` if negative values are to be represented.
    `isAlphaPremultiplied` - `true` if the luminance channel will be premultipled by the alpha channel.
  Returns:
    an `ImageTypeSpecifier` with the desired characteristics.
  Throws:
    `IllegalArgumentException` - if `bits` is not one of 1, 2, 4, 8, or 16.
    `IllegalArgumentException` - if `dataType` is not one of `DataBuffer.TYPE_BYTE`, `DataBuffer.TYPE_SHORT`, or `DataBuffer.TYPE_USHORT`.
    `IllegalArgumentException` - if `bits` is larger than the bit size of the given `dataType`.

### 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 of `byte`s containing the red values for each index.
    `greenLUT` - an array of `byte`s containing * the green values for each index.
    `blueLUT` - an array of `byte`s containing the blue values for each index.
    `alphaLUT` - an array of `byte`s containing the alpha values for each index, or `null` to create a fully opaque LUT.
    `bits` - the number of bits in each index.
    `dataType` - the desired output type, as one of the enumerations from the `DataBuffer` class.
  Returns:
    an `ImageTypeSpecifier` with the desired characteristics.
  Throws:
    `IllegalArgumentException` - if `redLUT` is `null`.
    `IllegalArgumentException` - if `greenLUT` is `null`.
    `IllegalArgumentException` - if `blueLUT` is `null`.
    `IllegalArgumentException` - if `bits` is not one of 1, 2, 4, 8, or 16.
    `IllegalArgumentException` - if the non-`null` LUT parameters do not have lengths of exactly `1 << bits`.
    `IllegalArgumentException` - if `dataType` is not one of `DataBuffer.TYPE_BYTE`, `DataBuffer.TYPE_SHORT`, `DataBuffer.TYPE_USHORT`, or `DataBuffer.TYPE_INT`.
    `IllegalArgumentException` - if `bits` is larger than the bit size of the given `dataType`.

### 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 standard `BufferedImage` types.
  Returns:
    an `ImageTypeSpecifier` with the desired characteristics.
  Throws:
    `IllegalArgumentException` - if `bufferedImageType` is not one of the standard types, or is equal to `TYPE_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` - a `RenderedImage`.
  Returns:
    an `ImageTypeSpecifier` with the desired characteristics.
  Throws:
    `IllegalArgumentException` - if `image` is `null`.

### getBufferedImageType

    public int getBufferedImageType()

  Returns an int containing one of the enumerated constant values describing image formats from `BufferedImage`.

  Returns:
    an `int` representing a `BufferedImage` type.
  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` - if `band` is 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 `SampleModel` with 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 returned `SampleModel`.
    `height` - the desired height of the returned `SampleModel`.
  Returns:
    a `SampleModel` with the given dimensions.
  Throws:
    `IllegalArgumentException` - if either `width` or `height` are negative or zero.
    `IllegalArgumentException` - if the product of `width` and `height` is greater than `Integer.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 returned `BufferedImage`.
    `height` - the desired height of the returned `BufferedImage`.
  Returns:
    a new `BufferedImage`
  Throws:
    `IllegalArgumentException` - if either `width` or `height` are negative or zero.
    `IllegalArgumentException` - if the product of `width` and `height` is greater than `Integer.MAX_VALUE`, or if the number of array elements needed to store the image is greater than `Integer.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:
    `equals` in class `Object`
  Parameters:
    `o` - the `Object` to be compared for equality.
  Returns:
    `true` if the given object is an equivalent `ImageTypeSpecifier`.
  See Also:
    `Object.hashCode()`, `Hashtable`

### hashCode

    public int hashCode()

  Returns the hash code for this ImageTypeSpecifier.

  Overrides:
    `hashCode` in class `Object`
  Returns:
    a hash code for this ImageTypeSpecifier
  See Also:
    `Object.equals(java.lang.Object)`, `Hashtable`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright © 1993, 2010, Oracle and/or its affiliates. All rights reserved.