private int ParseBlock(byte[] gifData, int offset)
{
switch (gifData[offset])
{
case 0x21:
if (gifData[offset + 1] == 0xF9)
{
return ParseGraphicControlExtension(gifData, offset);
}
else
{
return ParseExtensionBlock(gifData, offset);
}
case 0x2C:
offset = ParseGraphicBlock(gifData, offset);
_frameList.Add(_currentParseGifFrame);
_currentParseGifFrame = new GifFrame();
return offset;
case 0x3B:
return -1;
default:
throw new Exception("GIF format incorrect: missing graphic block or special-purpose block. ");
}
}