Class 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 provided ImageWriter can encode the provided ColorModel and SampleModel.
      static void canEncodeImage​(javax.imageio.ImageWriter writer, javax.imageio.ImageTypeSpecifier type)
      Checks that the provided ImageWriter can encode the provided ImageTypeSpecifier or not.
      static java.lang.String convertObjectToString​(java.lang.Object obj)
      Converts the provided object to String
      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 a ColorModel that may be used with the specified SampleModel.
      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() returns true), 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)
      Returns true if the given ColorSpace object is an instance of ICC_ColorSpace but is not one of the standard ColorSpaces returned by ColorSpace.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 supplied Raster's data from an array of packed binary data of the form returned by getPackedBinaryData().
      static void setUnpackedBinaryData​(byte[] bdata, java.awt.image.WritableRaster raster, java.awt.Rectangle rect)
      Copies data into the packed array of the Raster from an array of unpacked data of the form returned by getUnpackedBinaryData().
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ImageUtil

        public ImageUtil()
    • Method Detail

      • createColorModel

        public static final java.awt.image.ColorModel createColorModel​(java.awt.image.SampleModel sampleModel)
        Creates a ColorModel that may be used with the specified SampleModel. If a suitable ColorModel cannot be found, this method returns null.

        Suitable ColorModels are guaranteed to exist for all instances of ComponentSampleModel. For 1- and 3- banded SampleModels, the returned ColorModel will be opaque. For 2- and 4-banded SampleModels, the output will use alpha transparency which is not premultiplied. 1- and 2-banded data will use a grayscale ColorSpace, and 3- and 4-banded data a sRGB ColorSpace. Data with 5 or more bands will have a BogusColorSpace.

        An instance of DirectColorModel will be created for instances of SinglePixelPackedSampleModel with no more than 4 bands.

        An instance of IndexColorModel will be created for instances of MultiPixelPackedSampleModel. The colormap will be a grayscale ramp with 1 << numberOfBits entries ranging from zero to at most 255.

        Returns:
        An instance of ColorModel that is suitable for the supplied SampleModel, or null.
        Throws:
        java.lang.IllegalArgumentException - If sampleModel is null.
      • getPackedBinaryData

        public static byte[] getPackedBinaryData​(java.awt.image.Raster raster,
                                                 java.awt.Rectangle rect)
        For the case of binary data (isBinary() returns true), 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 by getHeight()
        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 - if isBinary() returns false with the SampleModel of the supplied Raster 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 the Raster.
        Throws:
        java.lang.IllegalArgumentException - if isBinary() returns false with the SampleModel of the supplied Raster as argument.
      • setPackedBinaryData

        public static void setPackedBinaryData​(byte[] binaryDataArray,
                                               java.awt.image.WritableRaster raster,
                                               java.awt.Rectangle rect)
        Sets the supplied Raster's data from an array of packed binary data of the form returned by getPackedBinaryData().
        Throws:
        java.lang.IllegalArgumentException - if isBinary() returns false with the SampleModel of the supplied Raster 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 the Raster from an array of unpacked data of the form returned by getUnpackedBinaryData().

        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 - if isBinary() returns false with the SampleModel of the supplied Raster 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 index i to ((255*i)/icm.getMapSize()-1).
        Throws:
        java.lang.IllegalArgumentException - if icm is null.
      • 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, return false.
      • convertObjectToString

        public static java.lang.String convertObjectToString​(java.lang.Object obj)
        Converts the provided object to String
      • canEncodeImage

        public static final void canEncodeImage​(javax.imageio.ImageWriter writer,
                                                javax.imageio.ImageTypeSpecifier type)
                                         throws javax.imageio.IIOException
        Checks that the provided ImageWriter can encode the provided ImageTypeSpecifier or not. If not, an IIOException will be thrown.
        Parameters:
        writer - The provided ImageWriter.
        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 provided ImageWriter can encode the provided ColorModel and SampleModel. If not, an IIOException will be thrown.
        Parameters:
        writer - The provided ImageWriter.
        colorModel - The provided ColorModel.
        sampleModel - The provided SampleModel.
        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)
        Returns true if the given ColorSpace object is an instance of ICC_ColorSpace but is not one of the standard ColorSpaces returned by ColorSpace.getInstance().
        Parameters:
        cs - The ColorSpace 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