Skip to content

chvilalukas/metadata-extractor-dotnet

 
 

Repository files navigation

metadata-extractor logo

Build status MetadataExtractor NuGet version MetadataExtractor download stats Issue Stats

MetadataExtractor is a straightforward .NET library for reading metadata from image files.

Installation

The easiest way to reference this project is to install its NuGet package:

PM> Install-Package MetadataExtractor

Usage

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

The resulting directories sequence holds potentially many different directories of metadata, depending upon the input image.

To print out all values from all directories:

foreach (var directory in directories)
foreach (var tag in directory.Tags)
{
    Console.Out.WriteLine("{0} - {1} = {2}", directory.Name, tag.TagName, tag.Description);
}

Producing:

Exif SubIFD - Exposure Time = 1/60 sec
Exif SubIFD - F-Number = f/8.0
...
Exif IFD0 - Make = NIKON CORPORATION
Exif IFD0 - Model = NIKON D70
...
IPTC - Credit = Drew Noakes
IPTC - City = London
...

Access a specific value, in this case the Exif DateTime tag:

var subIfdDirectory = directories.OfType<ExifSubIfdDirectory>().FirstOrDefault();
var dateTime = subIfdDirectory?.GetDescription(ExifDirectoryBase.TagDateTime);

Features

The library understands several formats of metadata, many of which may be present in a single image:

It will process files of type:

  • JPEG
  • TIFF
  • WebP
  • PSD
  • PNG
  • BMP
  • GIF
  • ICO
  • PCX
  • Camera Raw
    • NEF (Nikon)
    • CR2 (Canon)
    • ORF (Olympus)
    • ARW (Sony)
    • RW2 (Panasonic)
    • RWL (Leica)
    • SRW (Samsung)

Camera-specific "makernote" data is decoded for cameras manufactured by:

  • Agfa
  • Canon
  • Casio
  • Epson
  • Fujifilm
  • Kodak
  • Kyocera
  • Leica
  • Minolta
  • Nikon
  • Olympus
  • Panasonic
  • Pentax
  • Sanyo
  • Sigma/Foveon
  • Sony

Mailing Lists

Feedback

Have questions or ideas? Try the mailing list or open an issue. GitHub's issue tracker accepts attachments, and sample images are often crucial in debugging problems.

Contribute

If you want to get your hands dirty, clone this repository, enhance the library and submit a pull request. Review the issue list and ask around on the mailing list to avoid duplication of work.

An easier way to help is to contribute to the sample image file library used for research and testing.

Credits

This library is developed by Drew Noakes.

Thanks are due to the many users who sent in suggestions, bug reports, sample images from their cameras as well as encouragement. Wherever possible, they have been credited in the source code and commit logs.

This library was originally written in Java in 2002. In 2014, Yakov Danilov (for Imazen LLC) converted the code to C# using Sharpen. Both projects are now developed in unison and aim to be functionally equivalent.

License

Copyright 2002-2015 Drew Noakes

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

More information about this project is available at:

About

Extracts Exif, IPTC, XMP, ICC and other metadata from image files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%