startDecode method
Validate the file is a Gif image and get information about it. If the file is not a valid Gif image, null is returned.
Implementation
@override
GifInfo? startDecode(List<int> bytes) {
_input = InputBuffer(bytes);
info = GifInfo();
if (!_getInfo()) {
return null;
}
try {
while (!_input!.isEOS) {
final recordType = _input!.readByte();
switch (recordType) {
case IMAGE_DESC_RECORD_TYPE:
final gifImage = _skipImage();
if (gifImage == null) {
return info;
}
info!.frames.add(gifImage);
break;
case EXTENSION_RECORD_TYPE:
final extCode = _input!.readByte();
if (extCode == APPLICATION_EXT) {
_readApplicationExt(_input!);
} else if (extCode == GRAPHIC_CONTROL_EXT) {
_readGraphicsControlExt(_input!);
} else {
_skipRemainder();
}
break;
case TERMINATE_RECORD_TYPE:
//_numFrames = info.numFrames;
return info;
default:
break;
}
}
} catch (error) {
print(error);
}
//_numFrames = info.numFrames;
return info;
}