Package com.itextpdf.text.pdf.codec
Class GifImage
- java.lang.Object
-
- com.itextpdf.text.pdf.codec.GifImage
-
public class GifImage extends java.lang.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
GifImage.GifFrame
-
Field Summary
Fields Modifier and Type Field Description protected int
bgColor
protected int
bgIndex
protected byte[]
block
protected int
blockSize
protected int
delay
protected int
dispose
protected java.util.ArrayList<GifImage.GifFrame>
frames
protected byte[]
fromData
protected java.net.URL
fromUrl
protected boolean
gctFlag
protected int
height
protected int
ih
protected java.io.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
Constructors Constructor Description GifImage(byte[] data)
Reads gif images from a byte array.GifImage(java.io.InputStream is)
Reads gif images from a stream.GifImage(java.lang.String file)
Reads gif images from a file.GifImage(java.net.URL url)
Reads gif images from an URL.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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(java.io.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 valuesprotected void
readHeader()
Reads GIF file header information.protected void
readImage()
Reads next frame imageprotected void
readLSD()
Reads Logical Screen Descriptorprotected int
readShort()
Reads next 16-bit value, LSB firstprotected 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.
-
-
-
Field Detail
-
in
protected java.io.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 java.net.URL fromUrl
-
frames
protected java.util.ArrayList<GifImage.GifFrame> frames
-
-
Constructor Detail
-
GifImage
public GifImage(java.net.URL url) throws java.io.IOException
Reads gif images from an URL.- Parameters:
url
- the URL- Throws:
java.io.IOException
- on error
-
GifImage
public GifImage(java.lang.String file) throws java.io.IOException
Reads gif images from a file.- Parameters:
file
- the file- Throws:
java.io.IOException
- on error
-
GifImage
public GifImage(byte[] data) throws java.io.IOException
Reads gif images from a byte array.- Parameters:
data
- the byte array- Throws:
java.io.IOException
- on error
-
GifImage
public GifImage(java.io.InputStream is) throws java.io.IOException
Reads gif images from a stream. The stream is not closed.- Parameters:
is
- the stream- Throws:
java.io.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(java.io.InputStream is) throws java.io.IOException
- Throws:
java.io.IOException
-
readHeader
protected void readHeader() throws java.io.IOException
Reads GIF file header information.- Throws:
java.io.IOException
-
readLSD
protected void readLSD() throws java.io.IOException
Reads Logical Screen Descriptor- Throws:
java.io.IOException
-
readShort
protected int readShort() throws java.io.IOException
Reads next 16-bit value, LSB first- Throws:
java.io.IOException
-
readBlock
protected int readBlock() throws java.io.IOException
Reads next variable length block from input.- Returns:
- number of bytes stored in "buffer"
- Throws:
java.io.IOException
-
readColorTable
protected byte[] readColorTable(int bpc) throws java.io.IOException
- Throws:
java.io.IOException
-
newBpc
protected static int newBpc(int bpc)
-
readContents
protected void readContents() throws java.io.IOException
- Throws:
java.io.IOException
-
readImage
protected void readImage() throws java.io.IOException
Reads next frame image- Throws:
java.io.IOException
-
decodeImageData
protected boolean decodeImageData() throws java.io.IOException
- Throws:
java.io.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 java.io.IOException
Reads Graphics Control Extension values- Throws:
java.io.IOException
-
skip
protected void skip() throws java.io.IOException
Skips variable length blocks up to and including next zero length block.- Throws:
java.io.IOException
-
-