用于.NET 4.0框架的EXIF库

the*_*men 7 .net c# exif

我已经搜索了这个主题,但我能找到的唯一合适的主题是2008年,因此我的新问题.

我正在寻找使用C#.Net 4.0语言开发程序.我的程序的目的是从jpegs(制造商,模型,地理位置信息等)中提取EXIF信息,然后将其填充到MySql/Sql服务器数据库中.

任何人都可以推荐任何适合这个项目的好库吗?我也在寻找相机序列号(我知道这在制造商之间有所不同),但是如果有人知道任何现有的库来解决这个问题,那将是最有帮助的.

谢谢,享受周末

Dre*_*kes 7

自2002年以来,元数据提取器项目一直活跃在Java上,现在可用于.NET 3.5及更高版本.还有一个PCL版本.

  • 开源(Apache 2.0)
  • 经过严格测试和广泛使用
  • 支持多种图像类型(JPEG,TIFF,PNG,WebP,GIF,BMP,ICO,PCX ......)
  • 支持许多元数据类型(Exif,IPTC,XMP,JFIF,......)
  • 支持许多制造商特定领域(佳能,尼康,......)
  • 非常快(完全处理约400个图像,总计1.33GB,约3秒),内存消耗低

它可以通过NuGetGitHub获得.

样品用法:

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}");
Run Code Online (Sandbox Code Playgroud)

(披露:我维护这个库)

  • @vanhelgen,完成了.版本1.1.0在NuGet上运行,支持.NET 3.5和4.5.如果你可以测试它并告诉我你是如何继续下去的话会很棒. (3认同)

Cha*_*lie 6

这篇CodeProject文章是在上个月编写的,它的API比其他一些.NET EXIF阅读器有了很大的改进:

http://www.codeproject.com/Articles/36342/ExifLib-A-Fast-Exif-Data-Extractor-for-NET-2-0

它也可通过Nuget获得,并根据CPOL获得许可.


Jas*_*ore 4

对于基本的 EXIF 信息(制造商、相机型号、时间、光圈等),我会查看 System.Drawing.Image 类 - 特别是 PropertiesItems 集合。

这个类也有缺点。它需要在检索 EXIF 信息之前将整个图像加载到内存中(即它有点慢)。它也不能处理所有供应商特定的字段,这些字段在相机之间不统一。

图像.PropertyItems

MSDN:读取图像元数据

属性项.Id

我使用它非常成功地收集了有关我的照片集的信息(用十几种不同品牌和型号的不同数码相机拍摄的数万张照片)。

  • 我也用它来获取 EXIF 信息,发现它效果很好。您是否知道有一种内置方法可以跳过图像加载并仅获取元数据?速度大幅提升!您必须使用“Image.FromFile(Stream, false, false)”...在此处查看更多信息:http://msdn.microsoft.com/en-us/library/21zw9ah6.aspx (6认同)