Class CLibPNGMetadata

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class CLibPNGMetadata
    extends javax.imageio.metadata.IIOMetadata
    implements java.lang.Cloneable
    • Field Detail

      • nativeMetadataFormatName

        public static final java.lang.String nativeMetadataFormatName
        See Also:
        Constant Field Values
      • nativeMetadataFormatClassName

        protected static final java.lang.String nativeMetadataFormatClassName
        See Also:
        Constant Field Values
      • IHDR_colorTypeNames

        public static final java.lang.String[] IHDR_colorTypeNames
      • IHDR_numChannels

        public static final int[] IHDR_numChannels
      • IHDR_bitDepths

        public static final java.lang.String[] IHDR_bitDepths
      • IHDR_compressionMethodNames

        public static final java.lang.String[] IHDR_compressionMethodNames
      • IHDR_filterMethodNames

        public static final java.lang.String[] IHDR_filterMethodNames
      • IHDR_interlaceMethodNames

        public static final java.lang.String[] IHDR_interlaceMethodNames
      • iCCP_compressionMethodNames

        public static final java.lang.String[] iCCP_compressionMethodNames
      • zTXt_compressionMethodNames

        public static final java.lang.String[] zTXt_compressionMethodNames
      • unitSpecifierNames

        public static final java.lang.String[] unitSpecifierNames
      • renderingIntentNames

        public static final java.lang.String[] renderingIntentNames
      • colorSpaceTypeNames

        public static final java.lang.String[] colorSpaceTypeNames
      • IHDR_TYPE

        static final int IHDR_TYPE
      • PLTE_TYPE

        static final int PLTE_TYPE
      • IDAT_TYPE

        static final int IDAT_TYPE
      • IEND_TYPE

        static final int IEND_TYPE
      • bKGD_TYPE

        static final int bKGD_TYPE
      • cHRM_TYPE

        static final int cHRM_TYPE
      • gAMA_TYPE

        static final int gAMA_TYPE
      • hIST_TYPE

        static final int hIST_TYPE
      • iCCP_TYPE

        static final int iCCP_TYPE
      • iTXt_TYPE

        static final int iTXt_TYPE
      • pHYs_TYPE

        static final int pHYs_TYPE
      • sBIT_TYPE

        static final int sBIT_TYPE
      • sPLT_TYPE

        static final int sPLT_TYPE
      • sRGB_TYPE

        static final int sRGB_TYPE
      • tEXt_TYPE

        static final int tEXt_TYPE
      • tIME_TYPE

        static final int tIME_TYPE
      • tRNS_TYPE

        static final int tRNS_TYPE
      • zTXt_TYPE

        static final int zTXt_TYPE
      • IHDR_present

        public boolean IHDR_present
      • IHDR_width

        public int IHDR_width
      • IHDR_height

        public int IHDR_height
      • IHDR_bitDepth

        public int IHDR_bitDepth
      • IHDR_colorType

        public int IHDR_colorType
      • IHDR_compressionMethod

        public int IHDR_compressionMethod
      • IHDR_filterMethod

        public int IHDR_filterMethod
      • IHDR_interlaceMethod

        public int IHDR_interlaceMethod
      • PLTE_present

        public boolean PLTE_present
      • PLTE_red

        public byte[] PLTE_red
      • PLTE_green

        public byte[] PLTE_green
      • PLTE_blue

        public byte[] PLTE_blue
      • bKGD_present

        public boolean bKGD_present
      • bKGD_colorType

        public int bKGD_colorType
      • bKGD_index

        public int bKGD_index
      • bKGD_gray

        public int bKGD_gray
      • bKGD_red

        public int bKGD_red
      • bKGD_green

        public int bKGD_green
      • bKGD_blue

        public int bKGD_blue
      • cHRM_present

        public boolean cHRM_present
      • cHRM_whitePointX

        public int cHRM_whitePointX
      • cHRM_whitePointY

        public int cHRM_whitePointY
      • cHRM_redX

        public int cHRM_redX
      • cHRM_redY

        public int cHRM_redY
      • cHRM_greenX

        public int cHRM_greenX
      • cHRM_greenY

        public int cHRM_greenY
      • cHRM_blueX

        public int cHRM_blueX
      • cHRM_blueY

        public int cHRM_blueY
      • gAMA_present

        public boolean gAMA_present
      • gAMA_gamma

        public int gAMA_gamma
      • hIST_present

        public boolean hIST_present
      • hIST_histogram

        public char[] hIST_histogram
      • iCCP_present

        public boolean iCCP_present
      • iCCP_profileName

        public java.lang.String iCCP_profileName
      • iCCP_compressionMethod

        public int iCCP_compressionMethod
      • iCCP_compressedProfile

        public byte[] iCCP_compressedProfile
      • iTXt_keyword

        public java.util.ArrayList iTXt_keyword
      • iTXt_compressionFlag

        public java.util.ArrayList iTXt_compressionFlag
      • iTXt_compressionMethod

        public java.util.ArrayList iTXt_compressionMethod
      • iTXt_languageTag

        public java.util.ArrayList iTXt_languageTag
      • iTXt_translatedKeyword

        public java.util.ArrayList iTXt_translatedKeyword
      • iTXt_text

        public java.util.ArrayList iTXt_text
      • pHYs_present

        public boolean pHYs_present
      • pHYs_pixelsPerUnitXAxis

        public int pHYs_pixelsPerUnitXAxis
      • pHYs_pixelsPerUnitYAxis

        public int pHYs_pixelsPerUnitYAxis
      • pHYs_unitSpecifier

        public int pHYs_unitSpecifier
      • sBIT_present

        public boolean sBIT_present
      • sBIT_colorType

        public int sBIT_colorType
      • sBIT_grayBits

        public int sBIT_grayBits
      • sBIT_redBits

        public int sBIT_redBits
      • sBIT_greenBits

        public int sBIT_greenBits
      • sBIT_blueBits

        public int sBIT_blueBits
      • sBIT_alphaBits

        public int sBIT_alphaBits
      • sPLT_present

        public boolean sPLT_present
      • sPLT_paletteName

        public java.lang.String sPLT_paletteName
      • sPLT_sampleDepth

        public int sPLT_sampleDepth
      • sPLT_red

        public int[] sPLT_red
      • sPLT_green

        public int[] sPLT_green
      • sPLT_blue

        public int[] sPLT_blue
      • sPLT_alpha

        public int[] sPLT_alpha
      • sPLT_frequency

        public int[] sPLT_frequency
      • sRGB_present

        public boolean sRGB_present
      • sRGB_renderingIntent

        public int sRGB_renderingIntent
      • tEXt_keyword

        public java.util.ArrayList tEXt_keyword
      • tEXt_text

        public java.util.ArrayList tEXt_text
      • tIME_present

        public boolean tIME_present
      • tIME_year

        public int tIME_year
      • tIME_month

        public int tIME_month
      • tIME_day

        public int tIME_day
      • tIME_hour

        public int tIME_hour
      • tIME_minute

        public int tIME_minute
      • tIME_second

        public int tIME_second
      • tRNS_present

        public boolean tRNS_present
      • tRNS_colorType

        public int tRNS_colorType
      • tRNS_alpha

        public byte[] tRNS_alpha
      • tRNS_gray

        public int tRNS_gray
      • tRNS_red

        public int tRNS_red
      • tRNS_green

        public int tRNS_green
      • tRNS_blue

        public int tRNS_blue
      • zTXt_keyword

        public java.util.ArrayList zTXt_keyword
      • zTXt_compressionMethod

        public java.util.ArrayList zTXt_compressionMethod
      • zTXt_text

        public java.util.ArrayList zTXt_text
      • unknownChunkType

        public java.util.ArrayList unknownChunkType
      • unknownChunkData

        public java.util.ArrayList unknownChunkData
      • gotHeader

        private boolean gotHeader
      • gotMetadata

        private boolean gotMetadata
    • Constructor Detail

      • CLibPNGMetadata

        public CLibPNGMetadata()
      • CLibPNGMetadata

        public CLibPNGMetadata​(javax.imageio.metadata.IIOMetadata metadata)
                        throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
    • Method Detail

      • toPrintableLatin1

        static java.lang.String toPrintableLatin1​(java.lang.String s)
        Converts its parameter to another String which contains only printable Latin-1 characters but not leading, trailing, or consecutive spaces.
        Parameters:
        s - the String to convert.
        Returns:
        a printable Latin-1 String sans superfluous spaces.
      • initialize

        public void initialize​(javax.imageio.ImageTypeSpecifier imageType,
                               int numBands,
                               javax.imageio.ImageWriteParam param,
                               int interlaceMethod)
        Sets the instance variables of the IHDR and if necessary PLTE and tRNS chunks. The numBands parameter is necessary since we may only be writing a subset of the image bands.
      • isReadOnly

        public boolean isReadOnly()
        Specified by:
        isReadOnly in class javax.imageio.metadata.IIOMetadata
      • cloneBytesArrayList

        private java.util.ArrayList cloneBytesArrayList​(java.util.ArrayList in)
      • clone

        public java.lang.Object clone()
        Overrides:
        clone in class java.lang.Object
      • getAsTree

        public org.w3c.dom.Node getAsTree​(java.lang.String formatName)
        Specified by:
        getAsTree in class javax.imageio.metadata.IIOMetadata
      • getNativeTree

        private org.w3c.dom.Node getNativeTree()
      • getNumChannels

        private int getNumChannels()
      • getStandardChromaNode

        public javax.imageio.metadata.IIOMetadataNode getStandardChromaNode()
        Overrides:
        getStandardChromaNode in class javax.imageio.metadata.IIOMetadata
      • getStandardCompressionNode

        public javax.imageio.metadata.IIOMetadataNode getStandardCompressionNode()
        Overrides:
        getStandardCompressionNode in class javax.imageio.metadata.IIOMetadata
      • repeat

        private java.lang.String repeat​(java.lang.String s,
                                        int times)
      • getStandardDataNode

        public javax.imageio.metadata.IIOMetadataNode getStandardDataNode()
        Overrides:
        getStandardDataNode in class javax.imageio.metadata.IIOMetadata
      • getStandardDimensionNode

        public javax.imageio.metadata.IIOMetadataNode getStandardDimensionNode()
        Overrides:
        getStandardDimensionNode in class javax.imageio.metadata.IIOMetadata
      • getStandardDocumentNode

        public javax.imageio.metadata.IIOMetadataNode getStandardDocumentNode()
        Overrides:
        getStandardDocumentNode in class javax.imageio.metadata.IIOMetadata
      • getStandardTextNode

        public javax.imageio.metadata.IIOMetadataNode getStandardTextNode()
        Overrides:
        getStandardTextNode in class javax.imageio.metadata.IIOMetadata
      • getStandardTransparencyNode

        public javax.imageio.metadata.IIOMetadataNode getStandardTransparencyNode()
        Overrides:
        getStandardTransparencyNode in class javax.imageio.metadata.IIOMetadata
      • fatal

        private void fatal​(org.w3c.dom.Node node,
                           java.lang.String reason)
                    throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getIntAttribute

        private int getIntAttribute​(org.w3c.dom.Node node,
                                    java.lang.String name,
                                    int defaultValue,
                                    boolean required)
                             throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getFloatAttribute

        private float getFloatAttribute​(org.w3c.dom.Node node,
                                        java.lang.String name,
                                        float defaultValue,
                                        boolean required)
                                 throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getIntAttribute

        private int getIntAttribute​(org.w3c.dom.Node node,
                                    java.lang.String name)
                             throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getFloatAttribute

        private float getFloatAttribute​(org.w3c.dom.Node node,
                                        java.lang.String name)
                                 throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getBooleanAttribute

        private boolean getBooleanAttribute​(org.w3c.dom.Node node,
                                            java.lang.String name,
                                            boolean defaultValue,
                                            boolean required)
                                     throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getBooleanAttribute

        private boolean getBooleanAttribute​(org.w3c.dom.Node node,
                                            java.lang.String name)
                                     throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getEnumeratedAttribute

        private int getEnumeratedAttribute​(org.w3c.dom.Node node,
                                           java.lang.String name,
                                           java.lang.String[] legalNames,
                                           int defaultValue,
                                           boolean required)
                                    throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getEnumeratedAttribute

        private int getEnumeratedAttribute​(org.w3c.dom.Node node,
                                           java.lang.String name,
                                           java.lang.String[] legalNames)
                                    throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getAttribute

        private java.lang.String getAttribute​(org.w3c.dom.Node node,
                                              java.lang.String name,
                                              java.lang.String defaultValue,
                                              boolean required)
                                       throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • getAttribute

        private java.lang.String getAttribute​(org.w3c.dom.Node node,
                                              java.lang.String name)
                                       throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • mergeTree

        public void mergeTree​(java.lang.String formatName,
                              org.w3c.dom.Node root)
                       throws javax.imageio.metadata.IIOInvalidTreeException
        Specified by:
        mergeTree in class javax.imageio.metadata.IIOMetadata
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • mergeNativeTree

        private void mergeNativeTree​(org.w3c.dom.Node root)
                              throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • isISOLatin

        private boolean isISOLatin​(java.lang.String s)
      • mergeStandardTree

        private void mergeStandardTree​(org.w3c.dom.Node root)
                                throws javax.imageio.metadata.IIOInvalidTreeException
        Throws:
        javax.imageio.metadata.IIOInvalidTreeException
      • reset

        public void reset()
        Specified by:
        reset in class javax.imageio.metadata.IIOMetadata
      • chunkType

        private static int chunkType​(java.lang.String typeString)
      • readNullTerminatedString

        private java.lang.String readNullTerminatedString​(javax.imageio.stream.ImageInputStream stream)
                                                   throws java.io.IOException
        Throws:
        java.io.IOException