private int ParseExtensionBlock(byte[] gifData, int offset)
{
int returnOffset = offset;
// Extension Block
int length = gifData[offset + 2];
returnOffset = offset + length + 2 + 1;
// check if netscape continousLoop extension
if (gifData[offset + 1] == 0xFF && length > 10)
{
string netscape = System.Text.ASCIIEncoding.ASCII.GetString(gifData, offset + 3, 8);
if (netscape == "NETSCAPE")
{
_numberOfLoops = BitConverter.ToUInt16(gifData, offset + 16);
if (_numberOfLoops > 0)
{
_numberOfLoops++;
}
}
}
while (gifData[returnOffset] != 0x00)
{
returnOffset = returnOffset + gifData[returnOffset] + 1;
}
returnOffset++;
return returnOffset;
}