2011-08-19 14 views
7

私はこのトピックを検索しましたが、私が見つけることができる唯一の適切なスレッドは2008年のため、新しい質問です。.NET 4.0フレームワークのEXIFライブラリ

私はC#.Net 4.0言語を使用してプログラムを開発しています。私のプログラムの目的は、jpegs(Manufacturer、Model、Geolocation info etc ...)からEXIF情報を抽出し、これをMySql/SqlサーバーDBに取り込むことです。

誰でもこのプロジェクトに適した良いライブラリをお勧めしますか?私はカメラのシリアルナンバーも探しているだろうが(これは製造元によって異なる)知っているが、誰かがこれに対処する既存のライブラリを知っていれば、それが最も役立つだろう。

おかげで、週末の基本的なEXIF情報(メーカー、カメラモデル、時間、絞りなど)については

+0

あなたは自由ライブラリや商用を探していますか? – Yahia

+0

私は両方を探しています。それはすべて商業的なもののコストに依存しますが、あなたが何かをお勧めできるなら、私はそれらを見てうれしいです。ちょうどいい仕事をしているものがあれば、私はそれらを好むだろう:) – thefragileomen

+0

私は無料のものを試していない...しかし、LeadToolsまたはGdPicutre ... espを見てください。カメラ固有の情報は非常に頻繁に変更されるので、悪夢となりますので、頻繁に更新する必要があります。 – Yahia

答えて

4

を楽しみ、私はSystem.Drawing.Imageクラスで見える - 特にPropertiesItemsコレクションを。

このクラスには欠点があります。 EXIF情報を取得する前に、イメージ全体をメモリにロードする必要があります(つまり、やや遅くなります)。また、カメラごとに統一されていないベンダー固有のフィールドをすべて処理するわけではありません。私は私の写真集について、様々な可能のダースの異なるデジタルカメラで撮影した写真の何千もの(十情報を収集するために、大きな成功を収めてそれを使用している

PropertyItem.Id

Image.PropertyItems

MSDN: Reading Image Metadata

とモデル)。

+5

私もEXIF情報のためにこれを使用して、それがうまく動作することがわかりました。画像の読み込みをスキップしてメタデータを取得する方法があることをご存知でしたか?大幅なスピードアップ! 'Image.FromFile(Stream、false、false)'を使用する必要があります... ...詳細はこちらhttp://msdn.microsoft.com/en-us/library/21zw9ah6.aspx –

+1

スピードが重要な場合は、 .NET 4.0用のexifLibもコンパイルしてください:http://www.codeproject.com/Articles/36342/ExifLib-A-Fast-Exif-Data-Extractor-for-NET-2-0。単一のタグを読み込む場合、Image.FromFile(stream、false、false)より高速です。たくさんのタグを読む必要がある場合は、組み込みのフレームワークライブラリが高速になるかもしれません。 –

7

メタデータ抽出ツールプロジェクトは2002年からJava用に開発されており、現在.NET 3.5以上で利用可能です。 PCL版もあります。

  • オープンソース(Apache 2.0の)
  • 重テストし、広く
  • 多くの画像形式(JPEG、TIFF、PNG、WEBP、GIF、BMP、ICO、PCX ...)
  • をサポートを使用
  • 多くの製造元固有のフィールド(Canon、Nikon、...)
  • 非常に高速(完全なプロセス〜400画像は1.33GBの合計)の多くのメタデータタイプ(Exif、IPTC、XMP、JFIF、...) 〜3秒)、メモリ消費量は少ない

NuGetまたはGitHubで利用できます。

使用例:

IEnumerable<Directory> directories = ImageMetadataReader.ReadMetadata(path); 

foreach (var directory in directories) 
foreach (var tag in directory.Tags) 
    Console.WriteLine($"{directory.Name} - {tag.TagName} = {tag.Description}"); 

(情報開示:私はこのライブラリを維持する)

+0

OPはそれが.NET 4.5+以来のものではありません – mfeineis

+0

しかし*それは素晴らしいライブラリーです。そしておそらくあなたは私たちのためにビルドを提供することができますまだ.NET4.0にこだわった?それは素晴らしいだろう!私は自分自身でVS2015のターゲットフレームワークを変更しようとしましたが、.NET4.5の多くのものに依存しているようです... – mfeineis

+1

@vanhelgen、フィードバックありがとう!以前のバージョンの.NETのサポートも追加します。 [この新刊](https://github.com/drewnoakes/metadata-extractor-dotnet/issues/22)を参照してください。 –

関連する問題