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 colorModel,
SampleModel sampleModel)
Constructs an
ImageTypeSpecifier directly
from a ColorModel and a SampleModel . |
ImageTypeSpecifier(RenderedImage image)
Constructs an
ImageTypeSpecifier from a
RenderedImage . |
Modifier and Type | Method and 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
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.
|
protected ColorModel colorModel
ColorModel
to be used as a prototype.protected SampleModel sampleModel
SampleModel
to be used as a prototype.public ImageTypeSpecifier(ColorModel colorModel, 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(RenderedImage image)
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 ImageTypeSpecifier createPacked(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 ImageTypeSpecifier createInterleaved(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 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.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 ImageTypeSpecifier createBanded(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 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.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 ImageTypeSpecifier createGrayscale(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 ImageTypeSpecifier createGrayscale(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 ImageTypeSpecifier createIndexed(byte[] redLUT, byte[] greenLUT, byte[] blueLUT, byte[] alphaLUT, int bits, int dataType)
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.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 ImageTypeSpecifier createFromBufferedImageType(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 ImageTypeSpecifier createFromRenderedImage(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 SampleModel getSampleModel()
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 SampleModel getSampleModel(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 ColorModel getColorModel()
ColorModel
specified by this object.ColorModel
.public BufferedImage createBufferedImage(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(Object o)
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)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.