Gets/sets EXIF data collection you want to write into the file.
Namespace:
Aurigma.GraphicsMill.Codecs
Assembly:
Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)
Public Property Exif As ExifDictionary
public ExifDictionary Exif { get; set; }
TIFF files can store EXIF and IPTC data blocks. Graphics Mill for .NET allows you extracting this data from the TIFF file and save it into another TIFF file (as well as into the other file format which supports EXIF and IPTC). This code sample demonstrates how to add the EXIF and IPTC data to the file:
Dim bitmap As New Aurigma.GraphicsMill.Bitmap("c:\Mountain.jpg") Dim writer As New Aurigma.GraphicsMill.Codecs.TiffWriter("C:\Mountain.tif") 'EXIF Dim exif As New Aurigma.GraphicsMill.Codecs.ExifDictionary exif(Aurigma.GraphicsMill.Codecs.ExifDictionary.Software) = "Aurigma Graphics Mill" writer.Exif = exif 'IPTC Dim iptc As New Aurigma.GraphicsMill.Codecs.IptcDictionary iptc(Aurigma.GraphicsMill.Codecs.IptcDictionary.Category) = "Nature" iptc(Aurigma.GraphicsMill.Codecs.IptcDictionary.CopyrightNotice) = "Aurigma Inc." iptc(Aurigma.GraphicsMill.Codecs.IptcDictionary.Keyword) = "mountain" writer.Iptc = iptc 'Adobe resource blocks Dim adobeResources As New Aurigma.GraphicsMill.Codecs.AdobeResourceDictionary 'Create new adobe image resource block with the required metadata Dim arBlock As New Aurigma.GraphicsMill.Codecs.AdobeResourceBlock("Copyright", New Byte() {1}) 'Set this block to the item with 0x040A ID (copyright flag) adobeResources.Item(&H40A) = arBlock writer.AdobeResources = adobeResources 'XMP Dim xmp As New Aurigma.GraphicsMill.Codecs.XmpData() 'Create a node with the required metadata Dim node As New Aurigma.GraphicsMill.Codecs.XmpValueNode( _ Aurigma.GraphicsMill.Codecs.XmpNodeType.SimpleProperty, _ "John Doe", _ Aurigma.GraphicsMill.Codecs.XmpTagNames.DCCreator) xmp.AddNode(node) writer.Xmp = xmp.Save() Dim frame As New Aurigma.GraphicsMill.Codecs.TiffFrame(50) frame.SetBitmap(bitmap) bitmap.Dispose() writer.AddFrame(frame) frame.Dispose() writer.Dispose()
using (Aurigma.GraphicsMill.Bitmap bitmap = new Aurigma.GraphicsMill.Bitmap(@"c:\Mountain.jpg")) { using (Aurigma.GraphicsMill.Codecs.TiffWriter writer = new Aurigma.GraphicsMill.Codecs.TiffWriter(@"C:\Mountain.tif")) { //EXIF Aurigma.GraphicsMill.Codecs.ExifDictionary exif = new Aurigma.GraphicsMill.Codecs.ExifDictionary(); exif[Aurigma.GraphicsMill.Codecs.ExifDictionary.Software] = "Aurigma Graphics Mill"; writer.Exif = exif; //IPTC Aurigma.GraphicsMill.Codecs.IptcDictionary iptc = new Aurigma.GraphicsMill.Codecs.IptcDictionary(); iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Category] = "Nature"; iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.CopyrightNotice] = "Aurigma Inc."; iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Keyword] = "mountain"; writer.Iptc = iptc; //Adobe resource blocks Aurigma.GraphicsMill.Codecs.AdobeResourceDictionary adobeResources = new Aurigma.GraphicsMill.Codecs.AdobeResourceDictionary(); //Create new adobe image resource block with the required metadata Aurigma.GraphicsMill.Codecs.AdobeResourceBlock arBlock = new Aurigma.GraphicsMill.Codecs.AdobeResourceBlock("Copyright", new byte[] { 1 }); //Set this block to the item with 0x040A ID (copyright flag) adobeResources[0x040A] = arBlock; writer.AdobeResources = adobeResources; //XMP Aurigma.GraphicsMill.Codecs.XmpData xmp = new Aurigma.GraphicsMill.Codecs.XmpData(); //Create a node with the required metadata Aurigma.GraphicsMill.Codecs.XmpValueNode node = new Aurigma.GraphicsMill.Codecs.XmpValueNode( Aurigma.GraphicsMill.Codecs.XmpNodeType.SimpleProperty, "John Doe", Aurigma.GraphicsMill.Codecs.XmpTagNames.DCCreator); xmp.AddNode(node); writer.Xmp = xmp.Save(); using (Aurigma.GraphicsMill.Codecs.TiffFrame frame = new Aurigma.GraphicsMill.Codecs.TiffFrame(50)) { frame.SetBitmap(bitmap); writer.AddFrame(frame); } } }