com.sixlegs.png

## Class PngConstants

- java.lang.Object
- - com.sixlegs.png.PngConstants

    public abstract class PngConstants
    extends java.lang.Object

This interface defines all registered chunk types and provides methods helper methods to examine them. It also defines all of the keys used in the property map of a decoded `PngImage`, and applicable enumerated values.

See Also:
  `PngImage.getProperty(java.lang.String)`, `PngImage.getProperties()`

### Field Summary

Fields
`static java.lang.String` `BACKGROUND` `bKGD`: Background samples
`static java.lang.String` `BIT_DEPTH` `IHDR`: Bit depth
`static int` `bKGD` Background color
`static int` `cHRM` Primary chromaticities
`static java.lang.String` `CHROMATICITY` `cHRM`: Chromaticity
`static java.lang.String` `COLOR_TYPE` `IHDR`: Color type
`static int` `COLOR_TYPE_GRAY` `IHDR`: Grayscale color type
`static int` `COLOR_TYPE_GRAY_ALPHA` `IHDR`: Grayscale+alpha color type
`static int` `COLOR_TYPE_PALETTE` `IHDR`: Palette color type
`static int` `COLOR_TYPE_RGB` `IHDR`: RGB color type
`static int` `COLOR_TYPE_RGB_ALPHA` `IHDR`: RGBA color type
`static java.lang.String` `COMPRESSION` `IHDR`: Compression method
`static int` `COMPRESSION_BASE` `IHDR`: Deflate/inflate compression
`static java.lang.String` `FILTER` `IHDR`: Filter method
`static int` `FILTER_BASE` `IHDR`: Adaptive filtering
`static int` `gAMA` Image gamma
`static java.lang.String` `GAMMA` `gAMA`: Gamma
`static java.lang.String` `GIF_DELAY_TIME` `gIFg`: GIF delay time (hundredths of a second)
`static java.lang.String` `GIF_DISPOSAL_METHOD` `gIFg`: GIF disposal method
`static java.lang.String` `GIF_USER_INPUT_FLAG` `gIFg`: GIF user input flag
`static int` `gIFg` GIF Graphic Control Extension
`static int` `gIFx` GIF Application Extension
`static java.lang.String` `HEIGHT` `IHDR`: Height
`static int` `hIST` Palette histogram
`static java.lang.String` `HISTOGRAM` `hIST`: Palette histogram
`static java.lang.String` `ICC_PROFILE` `iCCP`: ICC profile
`static java.lang.String` `ICC_PROFILE_NAME` `iCCP`: ICC profile name
`static int` `iCCP` Embedded ICC profile
`static int` `IDAT` Image data
`static int` `IEND` Image trailer
`static int` `IHDR` Image header
`static java.lang.String` `INTERLACE` `IHDR`: Interlace method
`static int` `INTERLACE_ADAM7` `IHDR`: Adam7 interlace
`static int` `INTERLACE_NONE` `IHDR`: No interlace
`static int` `iTXt` International textual data
`static int` `oFFs` Image offset
`static java.lang.String` `PALETTE` `PLTE`: Palette entries
`static java.lang.String` `PALETTE_ALPHA` `PLTE`: Palette alpha
`static int` `pCAL` Calibration of pixel values
`static int` `pHYs` Physical pixel dimensions
`static java.lang.String` `PIXEL_HEIGHT` `sCAL`: Physical height of pixel
`static java.lang.String` `PIXEL_WIDTH` `sCAL`: Physical width of pixel
`static java.lang.String` `PIXELS_PER_UNIT_X` `pHYs`: Pixels per unit, X axis
`static java.lang.String` `PIXELS_PER_UNIT_Y` `pHYs`: Pixels per unit, Y axis
`static int` `PLTE` Palette
`static java.lang.String` `POSITION_UNIT` `oFFs`: Unit for image offset
`static int` `POSITION_UNIT_MICROMETER` `oFFs`: Unit is the micrometer (10^-6 meter)
`static int` `POSITION_UNIT_PIXEL` `oFFs`: Unit is the pixel (true dimensions unspecified)
`static java.lang.String` `POSITION_X` `oFFs`: Image X position
`static java.lang.String` `POSITION_Y` `oFFs`: Image Y position
`static java.lang.String` `RENDERING_INTENT` `sRGB`: Rendering intent
`static int` `sBIT` Significant bits
`static int` `sCAL` Physical scale of image subject
`static java.lang.String` `SCALE_UNIT` `sCAL`: Unit for physical scale of image subject
`static int` `SCALE_UNIT_METER` `sCAL`: Unit is the meter
`static int` `SCALE_UNIT_RADIAN` `sCAL`: Unit is the radian
`static long` `SIGNATURE` Eight byte magic number that begins all PNG images
`static java.lang.String` `SIGNIFICANT_BITS` `sBIT`: Significant bits
`static int` `sPLT` Suggested palette
`static int` `sRGB` Standard RGB color space
`static int` `SRGB_ABSOLUTE_COLORIMETRIC` `sRGB`: Absolute colormetric rendering intent
`static int` `SRGB_PERCEPTUAL` `sRGB`: Perceptual rendering intent
`static int` `SRGB_RELATIVE_COLORIMETRIC` `sRGB`: Relative colorimetric rendering intent
`static int` `SRGB_SATURATION_PRESERVING` `sRGB`: Saturation rendering intent
`static int` `sTER` Indicator of Stereo Image
`static java.lang.String` `STEREO_MODE` `sTER`: Indicator of stereo image
`static int` `STEREO_MODE_CROSS` `sTER`: Cross-fuse layout
`static int` `STEREO_MODE_DIVERGING` `sTER`: Diverging-fuse layout
`static java.lang.String` `SUGGESTED_PALETTES` `sPLT`: List of suggested palettes
`static int` `tEXt` Textual data
`static java.lang.String` `TEXT_CHUNKS` `tEXt`/`zTXt`/`iTXt`: List of text chunks
`static int` `tIME` Image last-modification time
`static java.lang.String` `TIME` `tIME`: Image last-modification time
`static java.lang.String` `TRANSPARENCY` `tRNS`: Transparency samples
`static int` `tRNS` Transparency
`static java.lang.String` `UNIT` `pHYs`: Unit specifier
`static int` `UNIT_METER` `pHYs`: Unit is the meter
`static int` `UNIT_UNKNOWN` `pHYs`: Unit is unknown
`static java.lang.String` `WIDTH` `IHDR`: Width
`static int` `zTXt` Compressed textual data

### Constructor Summary

Constructors
Constructor and Description
`PngConstants()`

### Method Summary

Methods
`static java.lang.String` `getChunkName(int chunkType)` Returns the four-character ASCII name corresponding to the given chunk type.
`static int` `getChunkType(java.lang.String chunkName)` Returns the chunk type corresponding to the given four-character ASCII chunk name.
`static boolean` `isAncillary(int chunkType)` Returns `true` if the given chunk type has the ancillary bit set (the first letter is lowercase).
`static boolean` `isPrivate(int chunkType)` Returns `true` if the given chunk type has the private bit set (the second letter is lowercase).
`static boolean` `isReserved(int chunkType)` Returns `true` if the given chunk type has the reserved bit set (the third letter is lowercase).
`static boolean` `isSafeToCopy(int chunkType)` Returns `true` if the given chunk type has the safe-to-copy bit set (the fourth letter is lowercase).

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### SIGNATURE

    public static final long SIGNATURE

Eight byte magic number that begins all PNG images

See Also:
  Constant Field Values

#### IHDR

    public static final int IHDR

Image header

See Also:
  Constant Field Values

#### PLTE

    public static final int PLTE

Palette

See Also:
  Constant Field Values

#### IDAT

    public static final int IDAT

Image data

See Also:
  Constant Field Values

#### IEND

    public static final int IEND

Image trailer

See Also:
  Constant Field Values

#### bKGD

    public static final int bKGD

Background color

See Also:
  Constant Field Values

#### cHRM

    public static final int cHRM

Primary chromaticities

See Also:
  Constant Field Values

#### gAMA

    public static final int gAMA

Image gamma

See Also:
  Constant Field Values

#### hIST

    public static final int hIST

Palette histogram

See Also:
  Constant Field Values

#### iCCP

    public static final int iCCP

Embedded ICC profile

See Also:
  Constant Field Values

#### iTXt

    public static final int iTXt

International textual data

See Also:
  Constant Field Values

#### pHYs

    public static final int pHYs

Physical pixel dimensions

See Also:
  Constant Field Values

#### sBIT

    public static final int sBIT

Significant bits

See Also:
  Constant Field Values

#### sPLT

    public static final int sPLT

Suggested palette

See Also:
  Constant Field Values

#### sRGB

    public static final int sRGB

Standard RGB color space

See Also:
  Constant Field Values

#### tEXt

    public static final int tEXt

Textual data

See Also:
  Constant Field Values

#### tIME

    public static final int tIME

Image last-modification time

See Also:
  Constant Field Values

#### tRNS

    public static final int tRNS

Transparency

See Also:
  Constant Field Values

#### zTXt

    public static final int zTXt

Compressed textual data

See Also:
  Constant Field Values

#### oFFs

    public static final int oFFs

Image offset

See Also:
  Constant Field Values

#### pCAL

    public static final int pCAL

Calibration of pixel values

See Also:
  Constant Field Values

#### sCAL

    public static final int sCAL

Physical scale of image subject

See Also:
  Constant Field Values

#### gIFg

    public static final int gIFg

GIF Graphic Control Extension

See Also:
  Constant Field Values

#### gIFx

    public static final int gIFx

GIF Application Extension

See Also:
  Constant Field Values

#### sTER

    public static final int sTER

Indicator of Stereo Image

See Also:
  Constant Field Values

#### BIT_DEPTH

    public static final java.lang.String BIT_DEPTH

`IHDR`: Bit depth

See Also:
  Constant Field Values

#### COLOR_TYPE

    public static final java.lang.String COLOR_TYPE

`IHDR`: Color type

See Also:
  Constant Field Values

#### COMPRESSION

    public static final java.lang.String COMPRESSION

`IHDR`: Compression method

See Also:
  Constant Field Values

#### FILTER

    public static final java.lang.String FILTER

`IHDR`: Filter method

See Also:
  Constant Field Values

#### GAMMA

    public static final java.lang.String GAMMA

`gAMA`: Gamma

See Also:
  Constant Field Values

#### WIDTH

    public static final java.lang.String WIDTH

`IHDR`: Width

See Also:
  Constant Field Values

#### HEIGHT

    public static final java.lang.String HEIGHT

`IHDR`: Height

See Also:
  Constant Field Values

#### INTERLACE

    public static final java.lang.String INTERLACE

`IHDR`: Interlace method

See Also:
  Constant Field Values

#### PALETTE

    public static final java.lang.String PALETTE

`PLTE`: Palette entries

See Also:
  Constant Field Values

#### PALETTE_ALPHA

    public static final java.lang.String PALETTE_ALPHA

`PLTE`: Palette alpha

See Also:
  Constant Field Values

#### TRANSPARENCY

    public static final java.lang.String TRANSPARENCY

`tRNS`: Transparency samples

See Also:
  Constant Field Values

#### BACKGROUND

    public static final java.lang.String BACKGROUND

`bKGD`: Background samples

See Also:
  Constant Field Values

#### PIXELS_PER_UNIT_X

    public static final java.lang.String PIXELS_PER_UNIT_X

`pHYs`: Pixels per unit, X axis

See Also:
  Constant Field Values

#### PIXELS_PER_UNIT_Y

    public static final java.lang.String PIXELS_PER_UNIT_Y

`pHYs`: Pixels per unit, Y axis

See Also:
  Constant Field Values

#### RENDERING_INTENT

    public static final java.lang.String RENDERING_INTENT

`sRGB`: Rendering intent

See Also:
  Constant Field Values

#### SIGNIFICANT_BITS

    public static final java.lang.String SIGNIFICANT_BITS

`sBIT`: Significant bits

See Also:
  Constant Field Values

#### TEXT_CHUNKS

    public static final java.lang.String TEXT_CHUNKS

`tEXt`/`zTXt`/`iTXt`: List of text chunks

See Also:
  Constant Field Values

#### TIME

    public static final java.lang.String TIME

`tIME`: Image last-modification time

See Also:
  Constant Field Values

#### UNIT

    public static final java.lang.String UNIT

`pHYs`: Unit specifier

See Also:
  Constant Field Values

#### CHROMATICITY

    public static final java.lang.String CHROMATICITY

`cHRM`: Chromaticity

See Also:
  Constant Field Values

#### ICC_PROFILE

    public static final java.lang.String ICC_PROFILE

`iCCP`: ICC profile

See Also:
  Constant Field Values

#### ICC_PROFILE_NAME

    public static final java.lang.String ICC_PROFILE_NAME

`iCCP`: ICC profile name

See Also:
  Constant Field Values

#### HISTOGRAM

    public static final java.lang.String HISTOGRAM

`hIST`: Palette histogram

See Also:
  Constant Field Values

#### SUGGESTED_PALETTES

    public static final java.lang.String SUGGESTED_PALETTES

`sPLT`: List of suggested palettes

See Also:
  Constant Field Values

#### GIF_DISPOSAL_METHOD

    public static final java.lang.String GIF_DISPOSAL_METHOD

`gIFg`: GIF disposal method

See Also:
  Constant Field Values

#### GIF_USER_INPUT_FLAG

    public static final java.lang.String GIF_USER_INPUT_FLAG

`gIFg`: GIF user input flag

See Also:
  Constant Field Values

#### GIF_DELAY_TIME

    public static final java.lang.String GIF_DELAY_TIME

`gIFg`: GIF delay time (hundredths of a second)

See Also:
  Constant Field Values

#### SCALE_UNIT

    public static final java.lang.String SCALE_UNIT

`sCAL`: Unit for physical scale of image subject

See Also:
  Constant Field Values

#### PIXEL_WIDTH

    public static final java.lang.String PIXEL_WIDTH

`sCAL`: Physical width of pixel

See Also:
  Constant Field Values

#### PIXEL_HEIGHT

    public static final java.lang.String PIXEL_HEIGHT

`sCAL`: Physical height of pixel

See Also:
  Constant Field Values

#### POSITION_UNIT

    public static final java.lang.String POSITION_UNIT

`oFFs`: Unit for image offset

See Also:
  Constant Field Values

#### STEREO_MODE

    public static final java.lang.String STEREO_MODE

`sTER`: Indicator of stereo image

See Also:
  Constant Field Values

#### COLOR_TYPE_GRAY

    public static final int COLOR_TYPE_GRAY

`IHDR`: Grayscale color type

See Also:
  Constant Field Values

#### COLOR_TYPE_GRAY_ALPHA

    public static final int COLOR_TYPE_GRAY_ALPHA

`IHDR`: Grayscale+alpha color type

See Also:
  Constant Field Values

#### COLOR_TYPE_PALETTE

    public static final int COLOR_TYPE_PALETTE

`IHDR`: Palette color type

See Also:
  Constant Field Values

#### COLOR_TYPE_RGB

    public static final int COLOR_TYPE_RGB

`IHDR`: RGB color type

See Also:
  Constant Field Values

#### COLOR_TYPE_RGB_ALPHA

    public static final int COLOR_TYPE_RGB_ALPHA

`IHDR`: RGBA color type

See Also:
  Constant Field Values

#### INTERLACE_NONE

    public static final int INTERLACE_NONE

`IHDR`: No interlace

See Also:
  Constant Field Values

#### INTERLACE_ADAM7

    public static final int INTERLACE_ADAM7

`IHDR`: Adam7 interlace

See Also:
  Constant Field Values

#### FILTER_BASE

    public static final int FILTER_BASE

`IHDR`: Adaptive filtering

See Also:
  Constant Field Values

#### COMPRESSION_BASE

    public static final int COMPRESSION_BASE

`IHDR`: Deflate/inflate compression

See Also:
  Constant Field Values

#### UNIT_UNKNOWN

    public static final int UNIT_UNKNOWN

`pHYs`: Unit is unknown

See Also:
  Constant Field Values

#### UNIT_METER

    public static final int UNIT_METER

`pHYs`: Unit is the meter

See Also:
  Constant Field Values

#### SRGB_PERCEPTUAL

    public static final int SRGB_PERCEPTUAL

`sRGB`: Perceptual rendering intent

See Also:
  Constant Field Values

#### SRGB_RELATIVE_COLORIMETRIC

    public static final int SRGB_RELATIVE_COLORIMETRIC

`sRGB`: Relative colorimetric rendering intent

See Also:
  Constant Field Values

#### SRGB_SATURATION_PRESERVING

    public static final int SRGB_SATURATION_PRESERVING

`sRGB`: Saturation rendering intent

See Also:
  Constant Field Values

#### SRGB_ABSOLUTE_COLORIMETRIC

    public static final int SRGB_ABSOLUTE_COLORIMETRIC

`sRGB`: Absolute colormetric rendering intent

See Also:
  Constant Field Values

#### POSITION_X

    public static final java.lang.String POSITION_X

`oFFs`: Image X position

See Also:
  Constant Field Values

#### POSITION_Y

    public static final java.lang.String POSITION_Y

`oFFs`: Image Y position

See Also:
  Constant Field Values

#### POSITION_UNIT_PIXEL

    public static final int POSITION_UNIT_PIXEL

`oFFs`: Unit is the pixel (true dimensions unspecified)

See Also:
  Constant Field Values

#### POSITION_UNIT_MICROMETER

    public static final int POSITION_UNIT_MICROMETER

`oFFs`: Unit is the micrometer (10^-6 meter)

See Also:
  Constant Field Values

#### SCALE_UNIT_METER

    public static final int SCALE_UNIT_METER

`sCAL`: Unit is the meter

See Also:
  Constant Field Values

#### SCALE_UNIT_RADIAN

    public static final int SCALE_UNIT_RADIAN

`sCAL`: Unit is the radian

See Also:
  Constant Field Values

#### STEREO_MODE_CROSS

    public static final int STEREO_MODE_CROSS

`sTER`: Cross-fuse layout

See Also:
  Constant Field Values

#### STEREO_MODE_DIVERGING

    public static final int STEREO_MODE_DIVERGING

`sTER`: Diverging-fuse layout

See Also:
  Constant Field Values

### Constructor Detail

#### PngConstants

    public PngConstants()

### Method Detail

#### isAncillary

    public static boolean isAncillary(int chunkType)

Returns `true` if the given chunk type has the ancillary bit set (the first letter is lowercase). An ancillary chunk is once which is not strictly necessary in order to meaningfully display the contents of the file.

Parameters:
  `chunkType` - the chunk type
Returns:
  whether the chunk type ancillary bit is set

#### isPrivate

    public static boolean isPrivate(int chunkType)

Returns `true` if the given chunk type has the private bit set (the second letter is lowercase). All unregistered chunk types should have this bit set.

Parameters:
  `chunkType` - the chunk type
Returns:
  whether the chunk type private bit is set

#### isReserved

    public static boolean isReserved(int chunkType)

Returns `true` if the given chunk type has the reserved bit set (the third letter is lowercase). The meaning of this bit is currently undefined, but reserved for future use. Images conforming to the current version of the PNG specification must not have this bit set.

Parameters:
  `chunkType` - the chunk type
Returns:
  whether the chunk type reserved bit is set

#### isSafeToCopy

    public static boolean isSafeToCopy(int chunkType)

Returns `true` if the given chunk type has the safe-to-copy bit set (the fourth letter is lowercase). Chunks marked as safe-to-copy may be copied to a modified PNG file whether or not the software recognizes the chunk type.

Parameters:
  `chunkType` - the chunk type
Returns:
  whether the chunk safe-to-copy bit is set

#### getChunkName

    public static java.lang.String getChunkName(int chunkType)

Returns the four-character ASCII name corresponding to the given chunk type. For example, `PngConstants.getChunkName(PngConstants.IHDR)` will return `"IHDR"`.

Parameters:
  `chunkType` - the chunk type
Returns:
  the four-character ASCII chunk name

#### getChunkType

    public static int getChunkType(java.lang.String chunkName)

Returns the chunk type corresponding to the given four-character ASCII chunk name.

Parameters:
  `chunkName` - the four-character ASCII chunk name
Returns:
  the chunk type
Throws:
  `java.lang.NullPointerException` - if `name` is null
  `java.lang.IndexOutOfBoundsException` - if `name` has less than four characters