public AnimatedHeaderedImage(byte[] rawdata)
{
if(rawdata.Length==0)return;
short width = BitConverter.ToInt16(rawdata, 0);
short height = BitConverter.ToInt16(rawdata, 2);
FramesCount = rawdata[5];
Frames = new HeaderedImage[FramesCount];
byte[] data = new byte[width*height];
Array.Copy(rawdata, 6, data, 0, width*height);
Frames[0] = new HeaderedImage(width, height, data);
int nextindex = data.Length+6;
for(int i = 1; i < FramesCount; i++)
{
width = BitConverter.ToInt16(rawdata, nextindex);
height = BitConverter.ToInt16(rawdata, nextindex+2);
data = new byte[width*height];
Array.Copy(rawdata, nextindex+6, data, 0, width*height);
Frames[i] = new HeaderedImage(width, height, data);
nextindex += data.Length+6;
}
}