Gets EXIF data collection from file.
Namespace:
Aurigma.GraphicsMill.Codecs
Assembly:
Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)
Public ReadOnly Property Exif As ExifDictionary
public ExifDictionary Exif { get; }
The code below demonstrates how to extract and display both EXIF and IPTC data.
Dim bitmap As New Aurigma.GraphicsMill.Bitmap 'Read bitmap and metadata Dim jpegReader As New Aurigma.GraphicsMill.Codecs.JpegReader("C:\IMG_0001.jpg") 'Read metadata Dim exif As Aurigma.GraphicsMill.Codecs.ExifDictionary = jpegReader.Exif Dim iptc As Aurigma.GraphicsMill.Codecs.IptcDictionary = jpegReader.Iptc 'Read bitmap Dim frame As Aurigma.GraphicsMill.Codecs.Frame = jpegReader.LoadFrame(0) frame.GetBitmap(bitmap) frame.Dispose() jpegReader.Dispose() 'Show EXIF tags If Not exif Is Nothing Then Console.WriteLine("EXIF") Console.WriteLine("---------------") For Each key As Long In exif.Keys Console.WriteLine("{0}: {1}, {2}", exif.GetKeyDescription(key), _ exif.Item(key), exif.GetItemString(key)) Next End If 'Show IPTC tags If Not iptc Is Nothing Then Console.WriteLine("IPTC") Console.WriteLine("---------------") For Each key As Long In iptc.Keys Console.WriteLine("{0}: {1}, {2}", iptc.GetKeyDescription(key), _ iptc.Item(key), iptc.GetItemString(key)) Next End If 'Process bitmap... bitmap.Transforms.RotateAndFlip(System.Drawing.RotateFlipType.Rotate90FlipNone) '...
using (Aurigma.GraphicsMill.Bitmap bitmap = new Aurigma.GraphicsMill.Bitmap()) { //Read bitmap and metadata Aurigma.GraphicsMill.Codecs.ExifDictionary exif = null; Aurigma.GraphicsMill.Codecs.IptcDictionary iptc = null; using (Aurigma.GraphicsMill.Codecs.JpegReader jpegReader = new Aurigma.GraphicsMill.Codecs.JpegReader(@"C:\IMG_0001.jpg")) { //Read metadata exif = jpegReader.Exif; iptc = jpegReader.Iptc; //Read bitmap using (Aurigma.GraphicsMill.Codecs.IFrame frame = jpegReader.LoadFrame(0)) { frame.GetBitmap(bitmap); } } //Show EXIF tags if (exif != null) { Console.WriteLine("EXIF"); Console.WriteLine("---------------"); foreach (long key in exif.Keys) { Console.WriteLine("{0}: {1}, {2}", exif.GetKeyDescription(key), exif[key], exif.GetItemString(key)); } } //Show IPTC tags if (iptc != null) { Console.WriteLine("IPTC"); Console.WriteLine("---------------"); foreach (long key in iptc.Keys) { Console.WriteLine("{0}: {1}, {2}", iptc.GetKeyDescription(key), iptc[key], iptc.GetItemString(key)); } } //Process bitmap... bitmap.Transforms.RotateAndFlip(System.Drawing.RotateFlipType.Rotate90FlipNone); //... }