我需要找到JPEG(JFIF)图像的大小。该图像未保存为独立文件,因此我无法使用 GetFileSize
或任何其他 API(图像位于流中,除JPEG/JFIF头之外没有其他标头)。
我进行了一些研究,发现JPEG图像由不同部分组成,每个部分都以帧标记(0xFF 0xXX
)开头,以及该帧的大小。使用这些信息,我能够从文件中解析出很多信息。
问题在于,我找不到压缩数据的大小,因为似乎没有压缩数据的帧标记。此外,压缩数据似乎紧随SOS(FFDA
)标记,并且图像以图像结束(EOI)(FFD9
)标记结束。
一种解决方法是逐字节搜索EOI标记,但我认为压缩数据可能包含这些字节的组合,对吗?
有没有一种简单而正确的方法来找到图像的总大小?(我更喜欢没有任何外部库的代码/想法)
基本上,我需要起始图像(SOI-FFE0
)和结束图像(EOI-FFD9
)之间的距离(以字节为单位)。