6

EXIFデータをダウンロードするだけで、画像のEXIF情報をリモートで取得することはできますか?

画像ファイルのEXIFバイトについて理解できることから、EXIFデータは画像の最初の数バイトにあります。

では、問題は、Pythonを使用してリモートファイルの最初の数バイトのみをダウンロードする方法です。(編集:すべてのリモートホストがHTTP範囲ヘッダーをサポートしているわけではないため、HTTP範囲ヘッダーに依存するだけでは十分ではありません。その場合、完全なダウンロードが発生します。)

たとえば、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 に答える