com.itextpdf.text.pdf.codec
Class GifImage

java.lang.Object
  extended by com.itextpdf.text.pdf.codec.GifImage

public class GifImage
extends Object

Reads gif images of all types. All the images in a gif are read in the constructors and can be retrieved with other methods.

Author:
Paulo Soares

Nested Class Summary
(package private) static class GifImage.GifFrame
           
 
Field Summary
protected  int bgColor
           
protected  int bgIndex
           
protected  byte[] block
           
protected  int blockSize
           
protected  int delay
           
protected  int dispose
           
protected  ArrayList<GifImage.GifFrame> frames
           
protected  byte[] fromData
           
protected  URL fromUrl
           
protected  boolean gctFlag
           
protected  int height
           
protected  int ih
           
protected  DataInputStream in
           
protected  boolean interlace
           
protected  int iw
           
protected  int ix
           
protected  int iy
           
protected  boolean lctFlag
           
protected  int lctSize
           
protected  int m_bpc
           
protected  byte[] m_curr_table
           
protected  int m_gbpc
           
protected  byte[] m_global_table
           
protected  int m_line_stride
           
protected  byte[] m_local_table
           
protected  byte[] m_out
           
protected static int MaxStackSize
           
protected  int pixelAspect
           
protected  byte[] pixels
           
protected  byte[] pixelStack
           
protected  short[] prefix
           
protected  byte[] suffix
           
protected  int transIndex
           
protected  boolean transparency
           
protected  int width
           
 
Constructor Summary
GifImage(byte[] data)
          Reads gif images from a byte array.
GifImage(InputStream is)
          Reads gif images from a stream.
GifImage(String file)
          Reads gif images from a file.
GifImage(URL url)
          Reads gif images from an URL.
 
Method Summary
protected  boolean decodeImageData()
           
 int getFrameCount()
          Gets the number of frames the gif has.
 int[] getFramePosition(int frame)
          Gets the [x,y] position of the frame in reference to the logical screen.
 Image getImage(int frame)
          Gets the image from a frame.
 int[] getLogicalScreen()
          Gets the logical screen.
protected static int newBpc(int bpc)
           
(package private)  void process(InputStream is)
           
protected  int readBlock()
          Reads next variable length block from input.
protected  byte[] readColorTable(int bpc)
           
protected  void readContents()
           
protected  void readGraphicControlExt()
          Reads Graphics Control Extension values
protected  void readHeader()
          Reads GIF file header information.
protected  void readImage()
          Reads next frame image
protected  void readLSD()
          Reads Logical Screen Descriptor
protected  int readShort()
          Reads next 16-bit value, LSB first
protected  void resetFrame()
          Resets frame state for reading next image.
protected  void setPixel(int x, int y, int v)
           
protected  void skip()
          Skips variable length blocks up to and including next zero length block.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

in

protected DataInputStream in

width

protected int width

height

protected int height

gctFlag

protected boolean gctFlag

bgIndex

protected int bgIndex

bgColor

protected int bgColor

pixelAspect

protected int pixelAspect

lctFlag

protected boolean lctFlag

interlace

protected boolean interlace

lctSize

protected int lctSize

ix

protected int ix

iy

protected int iy

iw

protected int iw

ih

protected int ih

block

protected byte[] block

blockSize

protected int blockSize

dispose

protected int dispose

transparency

protected boolean transparency

delay

protected int delay

transIndex

protected int transIndex

MaxStackSize

protected static final int MaxStackSize
See Also:
Constant Field Values

prefix

protected short[] prefix

suffix

protected byte[] suffix

pixelStack

protected byte[] pixelStack

pixels

protected byte[] pixels

m_out

protected byte[] m_out

m_bpc

protected int m_bpc

m_gbpc

protected int m_gbpc

m_global_table

protected byte[] m_global_table

m_local_table

protected byte[] m_local_table

m_curr_table

protected byte[] m_curr_table

m_line_stride

protected int m_line_stride

fromData

protected byte[] fromData

fromUrl

protected URL fromUrl

frames

protected ArrayList<GifImage.GifFrame> frames
Constructor Detail

GifImage

public GifImage(URL url)
         throws IOException
Reads gif images from an URL.

Parameters:
url - the URL
Throws:
IOException - on error

GifImage

public GifImage(String file)
         throws IOException
Reads gif images from a file.

Parameters:
file - the file
Throws:
IOException - on error

GifImage

public GifImage(byte[] data)
         throws IOException
Reads gif images from a byte array.

Parameters:
data - the byte array
Throws:
IOException - on error

GifImage

public GifImage(InputStream is)
         throws IOException
Reads gif images from a stream. The stream is not closed.

Parameters:
is - the stream
Throws:
IOException - on error
Method Detail

getFrameCount

public int getFrameCount()
Gets the number of frames the gif has.

Returns:
the number of frames the gif has

getImage

public Image getImage(int frame)
Gets the image from a frame. The first frame is 1.

Parameters:
frame - the frame to get the image from
Returns:
the image

getFramePosition

public int[] getFramePosition(int frame)
Gets the [x,y] position of the frame in reference to the logical screen.

Parameters:
frame - the frame
Returns:
the [x,y] position of the frame

getLogicalScreen

public int[] getLogicalScreen()
Gets the logical screen. The images may be smaller and placed in some position in this screen to playback some animation. No image will be be bigger that this.

Returns:
the logical screen dimensions as [x,y]

process

void process(InputStream is)
       throws IOException
Throws:
IOException

readHeader

protected void readHeader()
                   throws IOException
Reads GIF file header information.

Throws:
IOException

readLSD

protected void readLSD()
                throws IOException
Reads Logical Screen Descriptor

Throws:
IOException

readShort

protected int readShort()
                 throws IOException
Reads next 16-bit value, LSB first

Throws:
IOException

readBlock

protected int readBlock()
                 throws IOException
Reads next variable length block from input.

Returns:
number of bytes stored in "buffer"
Throws:
IOException

readColorTable

protected byte[] readColorTable(int bpc)
                         throws IOException
Throws:
IOException

newBpc

protected static int newBpc(int bpc)

readContents

protected void readContents()
                     throws IOException
Throws:
IOException

readImage

protected void readImage()
                  throws IOException
Reads next frame image

Throws:
IOException

decodeImageData

protected boolean decodeImageData()
                           throws IOException
Throws:
IOException

setPixel

protected void setPixel(int x,
                        int y,
                        int v)

resetFrame

protected void resetFrame()
Resets frame state for reading next image.


readGraphicControlExt

protected void readGraphicControlExt()
                              throws IOException
Reads Graphics Control Extension values

Throws:
IOException

skip

protected void skip()
             throws IOException
Skips variable length blocks up to and including next zero length block.

Throws:
IOException

Hosted by Hostbasket