Class CLibPNGMetadata
- java.lang.Object
-
- javax.imageio.metadata.IIOMetadata
-
- com.github.jaiimageio.impl.plugins.png.CLibPNGMetadata
-
- All Implemented Interfaces:
java.lang.Cloneable
public class CLibPNGMetadata extends javax.imageio.metadata.IIOMetadata implements java.lang.Cloneable
-
-
Field Summary
Fields Modifier and Type Field Description intbKGD_blueintbKGD_colorTypeintbKGD_grayintbKGD_greenintbKGD_indexbooleanbKGD_presentintbKGD_red(package private) static intbKGD_TYPEintcHRM_blueXintcHRM_blueYintcHRM_greenXintcHRM_greenYbooleancHRM_presentintcHRM_redXintcHRM_redY(package private) static intcHRM_TYPEintcHRM_whitePointXintcHRM_whitePointYstatic java.lang.String[]colorSpaceTypeNamesintgAMA_gammabooleangAMA_present(package private) static intgAMA_TYPEprivate booleangotHeaderprivate booleangotMetadatachar[]hIST_histogrambooleanhIST_present(package private) static inthIST_TYPEbyte[]iCCP_compressedProfileintiCCP_compressionMethodstatic java.lang.String[]iCCP_compressionMethodNamesbooleaniCCP_presentjava.lang.StringiCCP_profileName(package private) static intiCCP_TYPE(package private) static intIDAT_TYPE(package private) static intIEND_TYPEintIHDR_bitDepthstatic java.lang.String[]IHDR_bitDepthsintIHDR_colorTypestatic java.lang.String[]IHDR_colorTypeNamesintIHDR_compressionMethodstatic java.lang.String[]IHDR_compressionMethodNamesintIHDR_filterMethodstatic java.lang.String[]IHDR_filterMethodNamesintIHDR_heightintIHDR_interlaceMethodstatic java.lang.String[]IHDR_interlaceMethodNamesstatic int[]IHDR_numChannelsbooleanIHDR_present(package private) static intIHDR_TYPEintIHDR_widthjava.util.ArrayListiTXt_compressionFlagjava.util.ArrayListiTXt_compressionMethodjava.util.ArrayListiTXt_keywordjava.util.ArrayListiTXt_languageTagjava.util.ArrayListiTXt_textjava.util.ArrayListiTXt_translatedKeyword(package private) static intiTXt_TYPEprotected static java.lang.StringnativeMetadataFormatClassNamestatic java.lang.StringnativeMetadataFormatNameintpHYs_pixelsPerUnitXAxisintpHYs_pixelsPerUnitYAxisbooleanpHYs_present(package private) static intpHYs_TYPEstatic intPHYS_UNIT_METERstatic intPHYS_UNIT_UNKNOWNintpHYs_unitSpecifierbyte[]PLTE_bluebyte[]PLTE_greenbooleanPLTE_presentbyte[]PLTE_red(package private) static intPLTE_TYPE(package private) static intPNG_COLOR_GRAY(package private) static intPNG_COLOR_GRAY_ALPHA(package private) static intPNG_COLOR_PALETTE(package private) static intPNG_COLOR_RGB(package private) static intPNG_COLOR_RGB_ALPHAstatic java.lang.String[]renderingIntentNamesintsBIT_alphaBitsintsBIT_blueBitsintsBIT_colorTypeintsBIT_grayBitsintsBIT_greenBitsbooleansBIT_presentintsBIT_redBits(package private) static intsBIT_TYPEint[]sPLT_alphaint[]sPLT_blueint[]sPLT_frequencyint[]sPLT_greenjava.lang.StringsPLT_paletteNamebooleansPLT_presentint[]sPLT_redintsPLT_sampleDepth(package private) static intsPLT_TYPEbooleansRGB_presentintsRGB_renderingIntent(package private) static intsRGB_TYPEjava.util.ArrayListtEXt_keywordjava.util.ArrayListtEXt_text(package private) static inttEXt_TYPEinttIME_dayinttIME_hourinttIME_minuteinttIME_monthbooleantIME_presentinttIME_second(package private) static inttIME_TYPEinttIME_yearbyte[]tRNS_alphainttRNS_blueinttRNS_colorTypeinttRNS_grayinttRNS_greenbooleantRNS_presentinttRNS_red(package private) static inttRNS_TYPEstatic java.lang.String[]unitSpecifierNamesjava.util.ArrayListunknownChunkDatajava.util.ArrayListunknownChunkTypejava.util.ArrayListzTXt_compressionMethodstatic java.lang.String[]zTXt_compressionMethodNamesjava.util.ArrayListzTXt_keywordjava.util.ArrayListzTXt_text(package private) static intzTXt_TYPE
-
Constructor Summary
Constructors Constructor Description CLibPNGMetadata()CLibPNGMetadata(javax.imageio.metadata.IIOMetadata metadata)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static intchunkType(java.lang.String typeString)java.lang.Objectclone()private java.util.ArrayListcloneBytesArrayList(java.util.ArrayList in)private voidfatal(org.w3c.dom.Node node, java.lang.String reason)org.w3c.dom.NodegetAsTree(java.lang.String formatName)private java.lang.StringgetAttribute(org.w3c.dom.Node node, java.lang.String name)private java.lang.StringgetAttribute(org.w3c.dom.Node node, java.lang.String name, java.lang.String defaultValue, boolean required)private booleangetBooleanAttribute(org.w3c.dom.Node node, java.lang.String name)private booleangetBooleanAttribute(org.w3c.dom.Node node, java.lang.String name, boolean defaultValue, boolean required)private intgetEnumeratedAttribute(org.w3c.dom.Node node, java.lang.String name, java.lang.String[] legalNames)private intgetEnumeratedAttribute(org.w3c.dom.Node node, java.lang.String name, java.lang.String[] legalNames, int defaultValue, boolean required)private floatgetFloatAttribute(org.w3c.dom.Node node, java.lang.String name)private floatgetFloatAttribute(org.w3c.dom.Node node, java.lang.String name, float defaultValue, boolean required)private intgetIntAttribute(org.w3c.dom.Node node, java.lang.String name)private intgetIntAttribute(org.w3c.dom.Node node, java.lang.String name, int defaultValue, boolean required)private org.w3c.dom.NodegetNativeTree()private intgetNumChannels()javax.imageio.metadata.IIOMetadataNodegetStandardChromaNode()javax.imageio.metadata.IIOMetadataNodegetStandardCompressionNode()javax.imageio.metadata.IIOMetadataNodegetStandardDataNode()javax.imageio.metadata.IIOMetadataNodegetStandardDimensionNode()javax.imageio.metadata.IIOMetadataNodegetStandardDocumentNode()javax.imageio.metadata.IIOMetadataNodegetStandardTextNode()javax.imageio.metadata.IIOMetadataNodegetStandardTransparencyNode()voidinitialize(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.private booleanisISOLatin(java.lang.String s)booleanisReadOnly()private voidmergeNativeTree(org.w3c.dom.Node root)private voidmergeStandardTree(org.w3c.dom.Node root)voidmergeTree(java.lang.String formatName, org.w3c.dom.Node root)private java.lang.StringreadNullTerminatedString(javax.imageio.stream.ImageInputStream stream)private java.lang.Stringrepeat(java.lang.String s, int times)voidreset()(package private) static java.lang.StringtoPrintableLatin1(java.lang.String s)Converts its parameter to anotherStringwhich contains only printable Latin-1 characters but not leading, trailing, or consecutive spaces.-
Methods inherited from class javax.imageio.metadata.IIOMetadata
activateController, getController, getDefaultController, getExtraMetadataFormatNames, getMetadataFormat, getMetadataFormatNames, getNativeMetadataFormatName, getStandardTileNode, getStandardTree, hasController, isStandardMetadataFormatSupported, setController, setFromTree
-
-
-
-
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
-
PHYS_UNIT_UNKNOWN
public static final int PHYS_UNIT_UNKNOWN
- See Also:
- Constant Field Values
-
PHYS_UNIT_METER
public static final int PHYS_UNIT_METER
- See Also:
- Constant Field Values
-
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
-
PNG_COLOR_GRAY
static final int PNG_COLOR_GRAY
- See Also:
- Constant Field Values
-
PNG_COLOR_RGB
static final int PNG_COLOR_RGB
- See Also:
- Constant Field Values
-
PNG_COLOR_PALETTE
static final int PNG_COLOR_PALETTE
- See Also:
- Constant Field Values
-
PNG_COLOR_GRAY_ALPHA
static final int PNG_COLOR_GRAY_ALPHA
- See Also:
- Constant Field Values
-
PNG_COLOR_RGB_ALPHA
static final int PNG_COLOR_RGB_ALPHA
- See Also:
- Constant Field Values
-
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
-
-
Method Detail
-
toPrintableLatin1
static java.lang.String toPrintableLatin1(java.lang.String s)
Converts its parameter to anotherStringwhich contains only printable Latin-1 characters but not leading, trailing, or consecutive spaces.- Parameters:
s- theStringto convert.- Returns:
- a printable Latin-1
Stringsans 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. ThenumBandsparameter is necessary since we may only be writing a subset of the image bands.
-
isReadOnly
public boolean isReadOnly()
- Specified by:
isReadOnlyin classjavax.imageio.metadata.IIOMetadata
-
cloneBytesArrayList
private java.util.ArrayList cloneBytesArrayList(java.util.ArrayList in)
-
clone
public java.lang.Object clone()
- Overrides:
clonein classjava.lang.Object
-
getAsTree
public org.w3c.dom.Node getAsTree(java.lang.String formatName)
- Specified by:
getAsTreein classjavax.imageio.metadata.IIOMetadata
-
getNativeTree
private org.w3c.dom.Node getNativeTree()
-
getNumChannels
private int getNumChannels()
-
getStandardChromaNode
public javax.imageio.metadata.IIOMetadataNode getStandardChromaNode()
- Overrides:
getStandardChromaNodein classjavax.imageio.metadata.IIOMetadata
-
getStandardCompressionNode
public javax.imageio.metadata.IIOMetadataNode getStandardCompressionNode()
- Overrides:
getStandardCompressionNodein classjavax.imageio.metadata.IIOMetadata
-
repeat
private java.lang.String repeat(java.lang.String s, int times)
-
getStandardDataNode
public javax.imageio.metadata.IIOMetadataNode getStandardDataNode()
- Overrides:
getStandardDataNodein classjavax.imageio.metadata.IIOMetadata
-
getStandardDimensionNode
public javax.imageio.metadata.IIOMetadataNode getStandardDimensionNode()
- Overrides:
getStandardDimensionNodein classjavax.imageio.metadata.IIOMetadata
-
getStandardDocumentNode
public javax.imageio.metadata.IIOMetadataNode getStandardDocumentNode()
- Overrides:
getStandardDocumentNodein classjavax.imageio.metadata.IIOMetadata
-
getStandardTextNode
public javax.imageio.metadata.IIOMetadataNode getStandardTextNode()
- Overrides:
getStandardTextNodein classjavax.imageio.metadata.IIOMetadata
-
getStandardTransparencyNode
public javax.imageio.metadata.IIOMetadataNode getStandardTransparencyNode()
- Overrides:
getStandardTransparencyNodein classjavax.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:
mergeTreein classjavax.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:
resetin classjavax.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
-
-