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

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `(package private) static class` | `PngImage.NewByteArrayOutputStream`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(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

    Constructors
    Constructor and Description
    `PngImage(java.io.InputStream is)` Creates a new instance of PngImage

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `(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`