Class ImageUtil
- java.lang.Object
-
- com.github.jaiimageio.impl.common.ImageUtil
-
public class ImageUtil extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description ImageUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
canEncodeImage(javax.imageio.ImageWriter writer, java.awt.image.ColorModel colorModel, java.awt.image.SampleModel sampleModel)
Checks that the providedImageWriter
can encode the providedColorModel
andSampleModel
.static void
canEncodeImage(javax.imageio.ImageWriter writer, javax.imageio.ImageTypeSpecifier type)
Checks that the providedImageWriter
can encode the providedImageTypeSpecifier
or not.static java.lang.String
convertObjectToString(java.lang.Object obj)
Converts the provided object toString
static java.awt.image.ColorModel
createColorModel(java.awt.color.ColorSpace colorSpace, java.awt.image.SampleModel sampleModel)
static java.awt.image.ColorModel
createColorModel(java.awt.image.SampleModel sampleModel)
Creates aColorModel
that may be used with the specifiedSampleModel
.static long
getBandSize(java.awt.image.SampleModel sm)
static javax.imageio.ImageTypeSpecifier
getDestinationType(javax.imageio.ImageReadParam param, java.util.Iterator imageTypes)
Gets the destination image type.static int
getElementSize(java.awt.image.SampleModel sm)
static java.util.List
getJDKImageReaderWriterSPI(javax.imageio.spi.ServiceRegistry registry, java.lang.String formatName, boolean isReader)
(package private) static int
getJvmVersion(java.lang.String jvmSpecificationVersion)
static byte[]
getPackedBinaryData(java.awt.image.Raster raster, java.awt.Rectangle rect)
For the case of binary data (isBinary()
returnstrue
), return the binary data as a packed byte array.static long
getTileSize(java.awt.image.SampleModel sm)
static byte[]
getUnpackedBinaryData(java.awt.image.Raster raster, java.awt.Rectangle rect)
Returns the binary data unpacked into an array of bytes.static boolean
imageIsContiguous(java.awt.image.RenderedImage image)
Returns whether the image has contiguous data across rows.static boolean
isBinary(java.awt.image.SampleModel sm)
static boolean
isGrayscaleMapping(java.awt.image.IndexColorModel icm)
Tests whether the color indices represent a gray-scale image with the indicated number of bits over the color component range [0,255].static boolean
isIndicesForGrayscale(byte[] r, byte[] g, byte[] b)
Tests whether the color indices represent a gray-scale image.static boolean
isNonStandardICCColorSpace(java.awt.color.ColorSpace cs)
Returnstrue
if the givenColorSpace
object is an instance ofICC_ColorSpace
but is not one of the standardColorSpace
s returned byColorSpace.getInstance()
.static void
processOnRegistration(javax.imageio.spi.ServiceRegistry registry, java.lang.Class category, java.lang.String formatName, javax.imageio.spi.ImageReaderWriterSpi spi, int deregisterJvmVersion, int priorityJvmVersion)
static int
readMultiByteInteger(javax.imageio.stream.ImageInputStream iis)
static void
setPackedBinaryData(byte[] binaryDataArray, java.awt.image.WritableRaster raster, java.awt.Rectangle rect)
Sets the suppliedRaster
's data from an array of packed binary data of the form returned bygetPackedBinaryData()
.static void
setUnpackedBinaryData(byte[] bdata, java.awt.image.WritableRaster raster, java.awt.Rectangle rect)
Copies data into the packed array of theRaster
from an array of unpacked data of the form returned bygetUnpackedBinaryData()
.
-
-
-
Method Detail
-
createColorModel
public static final java.awt.image.ColorModel createColorModel(java.awt.image.SampleModel sampleModel)
Creates aColorModel
that may be used with the specifiedSampleModel
. If a suitableColorModel
cannot be found, this method returnsnull
.Suitable
ColorModel
s are guaranteed to exist for all instances ofComponentSampleModel
. For 1- and 3- bandedSampleModel
s, the returnedColorModel
will be opaque. For 2- and 4-bandedSampleModel
s, the output will use alpha transparency which is not premultiplied. 1- and 2-banded data will use a grayscaleColorSpace
, and 3- and 4-banded data a sRGBColorSpace
. Data with 5 or more bands will have aBogusColorSpace
.An instance of
DirectColorModel
will be created for instances ofSinglePixelPackedSampleModel
with no more than 4 bands.An instance of
IndexColorModel
will be created for instances ofMultiPixelPackedSampleModel
. The colormap will be a grayscale ramp with1 << numberOfBits
entries ranging from zero to at most 255.- Returns:
- An instance of
ColorModel
that is suitable for the suppliedSampleModel
, ornull
. - Throws:
java.lang.IllegalArgumentException
- IfsampleModel
isnull
.
-
getPackedBinaryData
public static byte[] getPackedBinaryData(java.awt.image.Raster raster, java.awt.Rectangle rect)
For the case of binary data (isBinary()
returnstrue
), return the binary data as a packed byte array. The data will be packed as eight bits per byte with no bit offset, i.e., the first bit in each image line will be the left-most of the first byte of the line. The line stride in bytes will be(int)((getWidth()+7)/8)
. The length of the returned array will be the line stride multiplied bygetHeight()
- Returns:
- the binary data as a packed array of bytes with zero offset
of
null
if the data are not binary. - Throws:
java.lang.IllegalArgumentException
- ifisBinary()
returnsfalse
with theSampleModel
of the suppliedRaster
as argument.
-
getUnpackedBinaryData
public static byte[] getUnpackedBinaryData(java.awt.image.Raster raster, java.awt.Rectangle rect)
Returns the binary data unpacked into an array of bytes. The line stride will be the width of theRaster
.- Throws:
java.lang.IllegalArgumentException
- ifisBinary()
returnsfalse
with theSampleModel
of the suppliedRaster
as argument.
-
setPackedBinaryData
public static void setPackedBinaryData(byte[] binaryDataArray, java.awt.image.WritableRaster raster, java.awt.Rectangle rect)
Sets the suppliedRaster
's data from an array of packed binary data of the form returned bygetPackedBinaryData()
.- Throws:
java.lang.IllegalArgumentException
- ifisBinary()
returnsfalse
with theSampleModel
of the suppliedRaster
as argument.
-
setUnpackedBinaryData
public static void setUnpackedBinaryData(byte[] bdata, java.awt.image.WritableRaster raster, java.awt.Rectangle rect)
Copies data into the packed array of theRaster
from an array of unpacked data of the form returned bygetUnpackedBinaryData()
.If the data are binary, then the target bit will be set if and only if the corresponding byte is non-zero.
- Throws:
java.lang.IllegalArgumentException
- ifisBinary()
returnsfalse
with theSampleModel
of the suppliedRaster
as argument.
-
isBinary
public static boolean isBinary(java.awt.image.SampleModel sm)
-
createColorModel
public static java.awt.image.ColorModel createColorModel(java.awt.color.ColorSpace colorSpace, java.awt.image.SampleModel sampleModel)
-
getElementSize
public static int getElementSize(java.awt.image.SampleModel sm)
-
getTileSize
public static long getTileSize(java.awt.image.SampleModel sm)
-
getBandSize
public static long getBandSize(java.awt.image.SampleModel sm)
-
isGrayscaleMapping
public static boolean isGrayscaleMapping(java.awt.image.IndexColorModel icm)
Tests whether the color indices represent a gray-scale image with the indicated number of bits over the color component range [0,255]. The grayscale mapping may be inverted, i.e., 0 -> 255 and mapSize -> 0.- Parameters:
icm
- The gray-to-color mapping.- Returns:
- Whether the
IndexColorModel
maps indexi
to((255*i)/icm.getMapSize()-1)
. - Throws:
java.lang.IllegalArgumentException
- ificm
isnull
.
-
isIndicesForGrayscale
public static boolean isIndicesForGrayscale(byte[] r, byte[] g, byte[] b)
Tests whether the color indices represent a gray-scale image.- Parameters:
r
- The red channel color indices.g
- The green channel color indices.b
- The blue channel color indices.- Returns:
- If all the indices have 256 entries, and are identical mappings,
return
true
; otherwise, returnfalse
.
-
convertObjectToString
public static java.lang.String convertObjectToString(java.lang.Object obj)
Converts the provided object toString
-
canEncodeImage
public static final void canEncodeImage(javax.imageio.ImageWriter writer, javax.imageio.ImageTypeSpecifier type) throws javax.imageio.IIOException
Checks that the providedImageWriter
can encode the providedImageTypeSpecifier
or not. If not, anIIOException
will be thrown.- Parameters:
writer
- The providedImageWriter
.type
- The image to be tested.- Throws:
javax.imageio.IIOException
- If the writer cannot encoded the provided image.
-
canEncodeImage
public static final void canEncodeImage(javax.imageio.ImageWriter writer, java.awt.image.ColorModel colorModel, java.awt.image.SampleModel sampleModel) throws javax.imageio.IIOException
Checks that the providedImageWriter
can encode the providedColorModel
andSampleModel
. If not, anIIOException
will be thrown.- Parameters:
writer
- The providedImageWriter
.colorModel
- The providedColorModel
.sampleModel
- The providedSampleModel
.- Throws:
javax.imageio.IIOException
- If the writer cannot encoded the provided image.
-
imageIsContiguous
public static final boolean imageIsContiguous(java.awt.image.RenderedImage image)
Returns whether the image has contiguous data across rows.
-
getDestinationType
public static final javax.imageio.ImageTypeSpecifier getDestinationType(javax.imageio.ImageReadParam param, java.util.Iterator imageTypes) throws javax.imageio.IIOException
Gets the destination image type.- Throws:
javax.imageio.IIOException
-
isNonStandardICCColorSpace
public static boolean isNonStandardICCColorSpace(java.awt.color.ColorSpace cs)
Returnstrue
if the givenColorSpace
object is an instance ofICC_ColorSpace
but is not one of the standardColorSpace
s returned byColorSpace.getInstance()
.- Parameters:
cs
- TheColorSpace
to test.
-
getJDKImageReaderWriterSPI
public static java.util.List getJDKImageReaderWriterSPI(javax.imageio.spi.ServiceRegistry registry, java.lang.String formatName, boolean isReader)
-
processOnRegistration
public static void processOnRegistration(javax.imageio.spi.ServiceRegistry registry, java.lang.Class category, java.lang.String formatName, javax.imageio.spi.ImageReaderWriterSpi spi, int deregisterJvmVersion, int priorityJvmVersion)
-
getJvmVersion
static int getJvmVersion(java.lang.String jvmSpecificationVersion)
-
readMultiByteInteger
public static int readMultiByteInteger(javax.imageio.stream.ImageInputStream iis) throws java.io.IOException
- Throws:
java.io.IOException
-
-