|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.bumptech.glide.gifdecoder.GifDecoder
public class GifDecoder
Reads frame data from a GIF image source and decodes it into individual frames
for animation purposes. Image data can be read from either and InputStream source
or a byte[].
This class is optimized for running animations with the frames, there
are no methods to get individual frame images, only to decode the next frame in the
animation sequence. Instead, it lowers its memory footprint by only housing the minimum
data necessary to decode the next frame in the animation sequence.
The animation must be manually moved forward using advance()
before requesting the next
frame. This method must also be called before you request the first frame or an error will
occur.
Implementation adapted from sample code published in Lyons. (2004). Java for Programmers,
republished under the MIT Open Source License
Nested Class Summary | |
---|---|
static interface |
GifDecoder.BitmapProvider
An interface that can be used to provide reused Bitmap s to avoid GCs from constantly
allocating Bitmap s for every frame. |
Field Summary | |
---|---|
static int |
STATUS_FORMAT_ERROR
File read status: Error decoding file (may be partially decoded). |
static int |
STATUS_OK
File read status: No errors. |
static int |
STATUS_OPEN_ERROR
File read status: Unable to open source. |
Constructor Summary | |
---|---|
GifDecoder(GifDecoder.BitmapProvider provider)
|
Method Summary | |
---|---|
void |
advance()
Move the animation frame counter forward. |
int |
getCurrentFrameIndex()
Gets the current index of the animation frame, or -1 if animation hasn't not yet started. |
byte[] |
getData()
|
int |
getDelay(int n)
Gets display duration for specified frame. |
int |
getFrameCount()
Gets the number of frames read from file. |
int |
getHeight()
|
String |
getId()
|
int |
getLoopCount()
Gets the "Netscape" iteration count, if any. |
int |
getNextDelay()
Gets display duration for the upcoming frame. |
Bitmap |
getNextFrame()
Get the next frame in the animation sequence. |
int |
getWidth()
|
boolean |
isTransparent()
|
int |
read(byte[] data)
Reads GIF image from byte array. |
int |
read(InputStream is,
int contentLength)
Reads GIF image from stream. |
void |
setData(String id,
GifHeader header,
byte[] data)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int STATUS_OK
public static final int STATUS_FORMAT_ERROR
public static final int STATUS_OPEN_ERROR
Constructor Detail |
---|
public GifDecoder(GifDecoder.BitmapProvider provider)
Method Detail |
---|
public int getWidth()
public int getHeight()
public boolean isTransparent()
public byte[] getData()
public void advance()
public int getDelay(int n)
n
- int index of frame.
public int getNextDelay()
public int getFrameCount()
public int getCurrentFrameIndex()
public int getLoopCount()
public String getId()
public Bitmap getNextFrame()
public int read(InputStream is, int contentLength)
is
- containing GIF file.
public void setData(String id, GifHeader header, byte[] data)
public int read(byte[] data)
data
- containing GIF file.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |