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);
//...
}