public class ImageTypeSpecifier extends Object
SampleModel and
ColorModel) to be specified in a convenient manner.
| Modifier and Type | Field and Description |
|---|---|
protected ColorModel |
colorModel
The
ColorModel to be used as a prototype.
|
protected SampleModel |
sampleModel
A
SampleModel to be used as a prototype.
|
| Constructor and Description |
|---|
ImageTypeSpecifier(ColorModel
Constructs an
ImageTypeSpecifier directly from a
ColorModel and a
SampleModel.
|
ImageTypeSpecifier(RenderedImage
Constructs an
ImageTypeSpecifier from a
RenderedImage.
|
| Modifier and Type | Method and Description |
|---|---|
static ImageTypeSpecifier |
createBanded(ColorSpace
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
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
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
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
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.
|
protected ColorModelcolorModel
ColorModel to be used as a prototype.
protected SampleModelsampleModel
SampleModel to be used as a prototype.
public ImageTypeSpecifier(ColorModelcolorModel, SampleModel sampleModel)
ImageTypeSpecifier directly from a
ColorModel and a
SampleModel. It is the caller's responsibility to supply compatible parameters.
colorModel - a
ColorModel.
sampleModel - a
SampleModel.
IllegalArgumentException - if either parameter is
null.
IllegalArgumentException - if
sampleModel is not compatible with
colorModel.
public ImageTypeSpecifier(RenderedImageimage)
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.
image - a
RenderedImage.
IllegalArgumentException - if the argument is
null.
public static ImageTypeSpecifiercreatePacked(ColorSpace colorSpace, int redMask, int greenMask, int blueMask, int alphaMask, int transferType, boolean isAlphaPremultiplied)
DirectColorModel and a packed
SampleModel to store each pixel packed into in a single byte, short, or int.
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.
ImageTypeSpecifier with the desired characteristics.
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.
public static ImageTypeSpecifiercreateInterleaved(ColorSpace colorSpace, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied)
ComponentColorModel and a
PixelInterleavedSampleModel to store each pixel component in a separate byte, short, or int.
colorSpace - the desired
ColorSpace.
bandOffsets - an array of
ints 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.
ImageTypeSpecifier with the desired characteristics.
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.
public static ImageTypeSpecifiercreateBanded(ColorSpace colorSpace, int[] bankIndices, int[] bandOffsets, int dataType, boolean hasAlpha, boolean isAlphaPremultiplied)
ComponentColorModel and a
BandedSampleModel to store each channel in a separate array.
colorSpace - the desired
ColorSpace.
bankIndices - an array of
ints indicating the bank in which each band will be stored.
bandOffsets - an array of
ints 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.
ImageTypeSpecifier with the desired characteristics.
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.
public static ImageTypeSpecifiercreateGrayscale(int bits, int dataType, boolean isSigned)
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.
ImageTypeSpecifier with the desired characteristics.
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.
public static ImageTypeSpecifiercreateGrayscale(int bits, int dataType, boolean isSigned, boolean isAlphaPremultiplied)
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.
ImageTypeSpecifier with the desired characteristics.
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.
public static ImageTypeSpecifiercreateIndexed(byte[] redLUT, byte[] greenLUT, byte[] blueLUT, byte[] alphaLUT, int bits, int dataType)
redLUT - an array of
bytes containing the red values for each index.
greenLUT - an array of
bytes containing * the green values for each index.
blueLUT - an array of
bytes containing the blue values for each index.
alphaLUT - an array of
bytes 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.
ImageTypeSpecifier with the desired characteristics.
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.
public static ImageTypeSpecifiercreateFromBufferedImageType(int bufferedImageType)
ImageTypeSpecifier that encodes one of the standard
BufferedImage types (other than
TYPE_CUSTOM).
bufferedImageType - an int representing one of the standard
BufferedImage types.
ImageTypeSpecifier with the desired characteristics.
IllegalArgumentException - if
bufferedImageType is not one of the standard types, or is equal to
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 ImageTypeSpecifiercreateFromRenderedImage(RenderedImage image)
ImageTypeSpecifier that encodes the layout of a
RenderedImage (which may be a
BufferedImage).
image - a
RenderedImage.
ImageTypeSpecifier with the desired characteristics.
IllegalArgumentException - if
image is
null.
public int getBufferedImageType()
BufferedImage.
int representing a
BufferedImage type.
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 - the index of the band to be queried, as an int.
IllegalArgumentException - if
band is negative or greater than the largest band index.
public SampleModelgetSampleModel()
SampleModel based on the settings encapsulated within this object. The width and height of the
SampleModel will be set to arbitrary values.
SampleModel with arbitrary dimensions.
public SampleModelgetSampleModel(int width, int height)
SampleModel based on the settings encapsulated within this object. The width and height of the
SampleModel will be set to the supplied values.
width - the desired width of the returned
SampleModel.
height - the desired height of the returned
SampleModel.
SampleModel with the given dimensions.
IllegalArgumentException - if either
width or
height are negative or zero.
IllegalArgumentException - if the product of
width and
height is greater than
Integer.MAX_VALUE
public ColorModelgetColorModel()
ColorModel specified by this object.
ColorModel.
public BufferedImagecreateBufferedImage(int width, int height)
BufferedImage with a given width and height according to the specification embodied in this object.
width - the desired width of the returned
BufferedImage.
height - the desired height of the returned
BufferedImage.
BufferedImage
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.
public boolean equals(Objecto)
true if the given
Object is an
ImageTypeSpecifier and has a
SampleModel and
ColorModel that are equal to those of this object.
equals in class
Object
o - the
Object to be compared for equality.
true if the given object is an equivalent
ImageTypeSpecifier.
Object.hashCode() ,
HashMap
public int hashCode()
hashCode in class
Object
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)