Image 如何在GIF图像中找到图像块的起始位置?
资料来源- 在GIF图像中,实际图像大小(宽度、高度)存储在图像块中。据我所知,图像块是标题中包含的第一个块。 在实际块开始之前,有一个名为全局颜色表(0..255 x 3字节)的内存分配(从现在开始GCT)。如果我可以知道为GCT保留的字节数,我可以从图像块中提取字节5-9,并获得实际的图像大小 问题: 我如何知道/了解GCT的大小 或 GCT在哪里结束 或 图像块从哪里开始 或Image 如何在GIF图像中找到图像块的起始位置?,image,gif,decoding,file-format,Image,Gif,Decoding,File Format,资料来源- 在GIF图像中,实际图像大小(宽度、高度)存储在图像块中。据我所知,图像块是标题中包含的第一个块。 在实际块开始之前,有一个名为全局颜色表(0..255 x 3字节)的内存分配(从现在开始GCT)。如果我可以知道为GCT保留的字节数,我可以从图像块中提取字节5-9,并获得实际的图像大小 问题: 我如何知道/了解GCT的大小 或 GCT在哪里结束 或 图像块从哪里开始 或 图像块在哪里结束 您可以在此处找到gif enc/dec所需的全部内容 GCT 此块是可选的,并不总是出现在GIF
图像块在哪里结束 您可以在此处找到gif enc/dec所需的全部内容
struct\u hdr
{
//标题
字节签名[3];/*头签名(始终为“GIF”)*/
字节版本[3];/*GIF格式版本(“87a”或“89a”)*/
//逻辑屏幕描述符
单词xs;
单词ys;
字节压缩;/*屏幕和颜色映射信息*/
字节背景色;/*背景色索引*/
字节纵横比;/*像素纵横比*/
}hdr;
gcolor_位=(hdr.Packed&7)+1;//全球托盘
scolor_位=((hdr.Packed>>4)和7)+1;//屏幕
_gcolor_sorted=hdr.Packed&8;
_gcolor_table=hdr.Packed&128;
scolors=1