5

何千ものjpegファイルを分析する必要があります(EXIFデータを取得することによって)。50GB以上のデータです。時間がかかりすぎるため、ファイル全体を読み取ることができません。

jpegファイル全体をロードおよび解凍する必要なしにそれらのファイルからEXIFデータのみを読み取る方法はC#にありますか?

編集:なぜ私は速い方法が必要ですか?
私はこの質問から解決策を試しました:C#を使用してファイルからEXIFデータを取得する方法
そして合計サイズが約1GBの1000枚の画像の場合、分析に3分かかりました。したがって、より大きな(50G)写真ライブラリの場合、2時間かかる可能性があります。そして、「顧客が使用するズームの好み」のようなほぼ即時の情報が必要な場合は、遅すぎます。

4

4 に答える 4

8

ExifLibにいくつかのコードサンプルがあります-.NET2.0+用の高速Exifデータエクストラクタ(および完全なプロジェクトも)は、EXIF情報だけを取得するために必要な最小限のデータを読み取る方法を示しています。

于 2012-05-08T08:04:49.403 に答える
2

最近、Javaメタデータエクストラクタライブラリを.NETに移植しました。2002年から活動しており、広く使用されて徹底的なテストが行​​われています。私のテストでは、2 GBの画像を処理し、マシン上で約4秒以内にすべてのメタデータを抽出します。Exifなどの特定のタイプのメタデータのみを読み取るように指示することで、さらに最適化できます。それは多くの画像/ビデオフォーマットと多くのメタデータタイプをサポートします。

GitHubNuGetで利用できます。

于 2016-01-03T13:26:32.920 に答える
1

バージョン10以降のGdPicture.NETImagingSDKは、ピクセルをデコードせずに画像メタデータ(EXIF、GPS、XMP、IPTC ...)に直接アクセスできる新しい画像解析メカニズムを提供します。JPEG、TIFF、RAW、WebPを含む90以上の画像フォーマットをサポートしています。

ここに、C#およびVB.NETを使用してメタデータを抽出する方法を示すGdPicture.NETナレッジベースへのリンクがあります(他の多くの言語もサポートされています):チュートリアル

誰かがさらに情報を必要とする場合に備えて、私は喜んでお手伝いします。

免責事項:私はGdPicture.NETの製品アーキテクトです。

于 2013-10-01T12:35:40.760 に答える
0

何も解凍する必要はありません。Exif情報は画像の前のヘッダーに保持されているため、ファイルを開き、exifヘッダーを読み取り、必要なものをデコードするだけです。これは、exifデータを手動で読み取る場合です(これは難しくありません)。

サイズだけが必要な場合は、それが正面にあります

編集:exifデータは実際には前面にある必要はありませんが、ほとんどの場合前面にある必要があることに注意してください。したがって、一般に、そうでない場合よりもはるかに高速であると想定するのが安全です。

また、標準APIの使用が「遅すぎる」ことを確認しましたか?50Gの場合、それほど長い時間がかかるとは思いませんでした(または、別の方法で実行すると、必然的に高速になります)。

于 2012-05-08T08:03:16.347 に答える