我需要找到jpeg(jfif)图像的大小.图像不会保存为独立文件,因此我无法使用GetFileSize或任何其他此类API(图像放置在流中,除了通常的jpeg/jfif标头之外不存在其他标头(s) ).
我做了一些研究,发现JPEG图像由不同的部分组成,每个部分以帧标记(0xFF; XX)开始,以及该帧的大小.使用此信息,我能够从文件中解析大量信息.
问题是我无法找到压缩数据的大小,因为似乎压缩数据没有帧标记.此外,似乎压缩数据遵循SOS(FF; DA)标记,并且图像以图像结束(EOI)(FF; D9)标记结束.
实现这一目标的一种方法是从一个字节到另一个字节搜索EOI标记,但我认为压缩数据可能包含这个字节组合,对吧?
您是否知道一种简单而正确的方法来查找图像的总大小?(我非常喜欢一些没有任何外部库的代码/想法:))?
基本上,我需要图像开始(SOI-FFE0)和图像结束(EOI-FFD9)之间的距离(以字节为单位).
我正在编写一个脚本来计算除EXIF标签之外的图像的MD5总和.
为了准确地做到这一点,我需要知道EXIF标记在文件中的位置(开头,中间,结尾),以便我可以将其排除.
如何确定标签在文件中的位置?
我正在扫描的图像格式为TIFF,JPG,PNG,BMP,DNG,CR2,NEF,以及一些视频MOV,AVI和MPG.