## com.lowagie.text.pdf.codec
Class PngImage

    java.lang.Object
      com.lowagie.text.pdf.codec.PngImage

    public class PngImage

extends java.lang.Object

Reads a PNG image. All types of PNG can be read.

It is based in part in the JAI codec.

Author:
  Paulo Soares (psoares@consiste.pt)

Nested Class Summary
`(package private) static class` `PngImage.NewByteArrayOutputStream`

Field Summary
`(package private) PdfDictionary` `additional`
`(package private) int` `bitDepth`
`(package private) int` `bytesPerPixel`
`static java.lang.String` `cHRM` A PNG marker.
`(package private) byte[]` `colorTable`
`(package private) int` `colorType`
`(package private) int` `compressionMethod`
`(package private) java.io.DataInputStream` `dataStream`
`(package private) int` `dpiX`
`(package private) int` `dpiY`
`(package private) int` `filterMethod`
`static java.lang.String` `gAMA` A PNG marker.
`(package private) float` `gamma`
`(package private) boolean` `genBWMask`
`(package private) boolean` `hasCHRM`
`(package private) int` `height`
`(package private) java.awt.color.ICC_Profile` `icc_profile`
`static java.lang.String` `iCCP` A PNG marker.
`(package private) PngImage.NewByteArrayOutputStream` `idat`
`static java.lang.String` `IDAT` A PNG marker.
`static java.lang.String` `IEND` A PNG marker.
`static java.lang.String` `IHDR` A PNG marker.
`(package private) byte[]` `image`
`(package private) int` `inputBands`
`(package private) PdfName` `intent`
`private static PdfName[]` `intents`
`(package private) int` `interlaceMethod`
`(package private) java.io.InputStream` `is`
`(package private) boolean` `palShades`
`static java.lang.String` `pHYs` A PNG marker.
`static java.lang.String` `PLTE` A PNG marker.
`private static int` `PNG_FILTER_AVERAGE`
`private static int` `PNG_FILTER_NONE`
`private static int` `PNG_FILTER_PAETH`
`private static int` `PNG_FILTER_SUB`
`private static int` `PNG_FILTER_UP`
`static int[]` `PNGID` Some PNG specific values.
`(package private) byte[]` `smask`
`static java.lang.String` `sRGB` A PNG marker.
`(package private) byte[]` `trans`
`(package private) int` `transBlue`
`private static int` `TRANSFERSIZE`
`(package private) int` `transGreen`
`(package private) int` `transRedGray`
`static java.lang.String` `tRNS` A PNG marker.
`(package private) int` `width`
`(package private) float` `xB`
`(package private) float` `xG`
`(package private) float` `xR`
`(package private) float` `xW`
`(package private) float` `XYRatio`
`(package private) float` `yB`
`(package private) float` `yG`
`(package private) float` `yR`
`(package private) float` `yW`

Constructor Summary
`PngImage(java.io.InputStream is)` Creates a new instance of PngImage

Method Summary
`(package private) boolean` `checkMarker(java.lang.String s)`
`private static void` `decodeAverageFilter(byte[] curr, byte[] prev, int count, int bpp)`
`(package private) void` `decodeIdat()`
`private static void` `decodePaethFilter(byte[] curr, byte[] prev, int count, int bpp)`
`(package private) void` `decodePass(int xOffset, int yOffset, int xStep, int yStep, int passWidth, int passHeight)`
`private static void` `decodeSubFilter(byte[] curr, int count, int bpp)`
`private static void` `decodeUpFilter(byte[] curr, byte[] prev, int count)`
`(package private) PdfObject` `getColorspace()`
`(package private) Image` `getImage()`
`static Image` `getImage(byte[] data)` Reads a PNG from a byte array.
`static Image` `getImage(java.io.InputStream is)` Reads a PNG from a stream.
`static Image` `getImage(java.lang.String file)` Reads a PNG from a file.
`static Image` `getImage(java.net.URL url)` Reads a PNG from an url.
`static int` `getInt(java.io.InputStream is)` Gets an `int` from an `InputStream`.
`(package private) int[]` `getPixel(byte[] curr)`
`(package private) static int` `getPixel(byte[] image, int x, int y, int bitDepth, int bytesPerRow)`
`static java.lang.String` `getString(java.io.InputStream is)` Gets a `String` from an `InputStream`.
`static int` `getWord(java.io.InputStream is)` Gets a `word` from an `InputStream`.
`private static int` `paethPredictor(int a, int b, int c)`
`(package private) void` `processPixels(byte[] curr, int xOffset, int step, int y, int width)`
`(package private) void` `readPng()`
`(package private) static void` `setPixel(byte[] image, int[] data, int offset, int size, int x, int y, int bitDepth, int bytesPerRow)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### PNGID

    public static final int[] PNGID

  Some PNG specific values.

### IHDR

    public static final java.lang.String IHDR

  A PNG marker.

  See Also:
    Constant Field Values

### PLTE

    public static final java.lang.String PLTE

  A PNG marker.

  See Also:
    Constant Field Values

### IDAT

    public static final java.lang.String IDAT

  A PNG marker.

  See Also:
    Constant Field Values

### IEND

    public static final java.lang.String IEND

  A PNG marker.

  See Also:
    Constant Field Values

### tRNS

    public static final java.lang.String tRNS

  A PNG marker.

  See Also:
    Constant Field Values

### pHYs

    public static final java.lang.String pHYs

  A PNG marker.

  See Also:
    Constant Field Values

### gAMA

    public static final java.lang.String gAMA

  A PNG marker.

  See Also:
    Constant Field Values

### cHRM

    public static final java.lang.String cHRM

  A PNG marker.

  See Also:
    Constant Field Values

### sRGB

    public static final java.lang.String sRGB

  A PNG marker.

  See Also:
    Constant Field Values

### iCCP

    public static final java.lang.String iCCP

  A PNG marker.

  See Also:
    Constant Field Values

### TRANSFERSIZE

    private static final int TRANSFERSIZE

See Also:
  Constant Field Values

### PNG_FILTER_NONE

    private static final int PNG_FILTER_NONE

See Also:
  Constant Field Values

### PNG_FILTER_SUB

    private static final int PNG_FILTER_SUB

See Also:
  Constant Field Values

### PNG_FILTER_UP

    private static final int PNG_FILTER_UP

See Also:
  Constant Field Values

### PNG_FILTER_AVERAGE

    private static final int PNG_FILTER_AVERAGE

See Also:
  Constant Field Values

### PNG_FILTER_PAETH

    private static final int PNG_FILTER_PAETH

See Also:
  Constant Field Values

### intents

    private static final PdfName[] intents

### is

    java.io.InputStream is

### dataStream

    java.io.DataInputStream dataStream

### width

    int width

### height

    int height

### bitDepth

    int bitDepth

### colorType

    int colorType

### compressionMethod

    int compressionMethod

### filterMethod

    int filterMethod

### interlaceMethod

    int interlaceMethod

### additional

    PdfDictionary additional

### image

    byte[] image

### smask

    byte[] smask

### trans

    byte[] trans

### idat

    PngImage.NewByteArrayOutputStream idat

### dpiX

    int dpiX

### dpiY

    int dpiY

### XYRatio

    float XYRatio

### genBWMask

    boolean genBWMask

### palShades

    boolean palShades

### transRedGray

    int transRedGray

### transGreen

    int transGreen

### transBlue

    int transBlue

### inputBands

    int inputBands

### bytesPerPixel

    int bytesPerPixel

### colorTable

    byte[] colorTable

### gamma

    float gamma

### hasCHRM

    boolean hasCHRM

### xW

    float xW

### yW

    float yW

### xR

    float xR

### yR

    float yR

### xG

    float xG

### yG

    float yG

### xB

    float xB

### yB

    float yB

### intent

    PdfName intent

### icc_profile

    java.awt.color.ICC_Profile icc_profile

Constructor Detail

### PngImage

    PngImage(java.io.InputStream is)

  Creates a new instance of PngImage

Method Detail

### getImage

    public static Image getImage(java.net.URL url)
                          throws java.io.IOException

  Reads a PNG from an url.

  Parameters:
    `url` - the url
  Returns:
    the image
  Throws:
    `java.io.IOException` - on error

### getImage

    public static Image getImage(java.io.InputStream is)
                          throws java.io.IOException

  Reads a PNG from a stream.

  Parameters:
    `is` - the stream
  Returns:
    the image
  Throws:
    `java.io.IOException` - on error

### getImage

    public static Image getImage(java.lang.String file)
                          throws java.io.IOException

  Reads a PNG from a file.

  Parameters:
    `file` - the file
  Returns:
    the image
  Throws:
    `java.io.IOException` - on error

### getImage

    public static Image getImage(byte[] data)
                          throws java.io.IOException

  Reads a PNG from a byte array.

  Parameters:
    `data` - the byte array
  Returns:
    the image
  Throws:
    `java.io.IOException` - on error

### checkMarker

    boolean checkMarker(java.lang.String s)

### readPng

    void readPng()
           throws java.io.IOException

  Throws:
    `java.io.IOException`

### getColorspace

    PdfObject getColorspace()

### getImage

    Image getImage()
             throws java.io.IOException

  Throws:
    `java.io.IOException`

### decodeIdat

    void decodeIdat()

### decodePass

    void decodePass(int xOffset,
                    int yOffset,
                    int xStep,
                    int yStep,
                    int passWidth,
                    int passHeight)

### processPixels

    void processPixels(byte[] curr,
                       int xOffset,
                       int step,
                       int y,
                       int width)

### getPixel

    static int getPixel(byte[] image,
                        int x,
                        int y,
                        int bitDepth,
                        int bytesPerRow)

### setPixel

    static void setPixel(byte[] image,
                         int[] data,
                         int offset,
                         int size,
                         int x,
                         int y,
                         int bitDepth,
                         int bytesPerRow)

### getPixel

    int[] getPixel(byte[] curr)

### decodeSubFilter

    private static void decodeSubFilter(byte[] curr,
                                        int count,
                                        int bpp)

### decodeUpFilter

    private static void decodeUpFilter(byte[] curr,
                                       byte[] prev,
                                       int count)

### decodeAverageFilter

    private static void decodeAverageFilter(byte[] curr,
                                            byte[] prev,
                                            int count,
                                            int bpp)

### paethPredictor

    private static int paethPredictor(int a,
                                      int b,
                                      int c)

### decodePaethFilter

    private static void decodePaethFilter(byte[] curr,
                                          byte[] prev,
                                          int count,
                                          int bpp)

### getInt

    public static final int getInt(java.io.InputStream is)
                            throws java.io.IOException

  Gets an `int` from an `InputStream`.

  Parameters:
    `is` - an `InputStream`
  Returns:
    the value of an `int`
  Throws:
    `java.io.IOException`

### getWord

    public static final int getWord(java.io.InputStream is)
                             throws java.io.IOException

  Gets a `word` from an `InputStream`.

  Parameters:
    `is` - an `InputStream`
  Returns:
    the value of an `int`
  Throws:
    `java.io.IOException`

### getString

    public static final java.lang.String getString(java.io.InputStream is)
                                            throws java.io.IOException

  Gets a `String` from an `InputStream`.

  Parameters:
    `is` - an `InputStream`
  Returns:
    the value of an `int`
  Throws:
    `java.io.IOException`