6

是否可以远程获取图像的 EXIF 信息并且只下载 EXIF 数据?

根据我对图像文件中 EXIF 字节的了解,EXIF 数据位于图像的前几个字节中。

所以问题是如何用 Python 只下载远程文件的前几个字节?(编辑:依赖 HTTP Range Header 不够好,因为并非所有远程主机都支持它,在这种情况下会发生完整下载。)

例如,我可以在 x 个字节的进度后取消下载吗?

4

2 回答 2

4

您可以通过设置HTTP 范围标头告诉 Web 服务器只向您发送文件的一部分。有关用于部分下载文件的示例,请参阅此答案。urllib所以你可以下载一块例如1000字节的块,检查exif数据是否包含在块中,如果找不到exif app1头或exif数据不完整,则下载更多。

于 2012-12-13T15:09:13.007 回答
2

这在很大程度上取决于图像格式。例如,如果您有一个 TIFF 文件,则无法事先知道 EXIF 数据(如果有)在文件中的位置。它可能就在标题之后和第一个 IFD 之前,但这不太可能。它可能在图像数据之后。很有可能它在中间的某个地方。

如果您想要 EXIF 信息,请在服务器上提取它(可能是缓存)并将其打包发送出去,而不是要求客户端代码执行此操作。

于 2012-12-13T15:14:28.387 回答