---
title: "MetadataDictionary Class"
canonical: https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_MetadataDictionary.htm
archived: false
applies_to:
  - product: "Graphics Mill"
    versions: ["12.1", "6.x-12.x (may differ)"]
    entity_id: "https://www.graphicsmill.com/#software-application"
---

# MetadataDictionary Class

**Applies to:** Graphics Mill 12.1, 6.x-12.x (may differ)
 
Represents a dicitonary of image metadata, such as EXIF, IPTC, etc.
 
**Namespace:** [Aurigma.GraphicsMill.Codecs](https://www.graphicsmill.com/docs/gm/N_Aurigma_GraphicsMill_Codecs.htm.md)
 **Assembly:** Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)
 
## Syntax
  
```csharp
public abstract class MetadataDictionary : IDictionary, IDisposable
```
 
## Remarks
  
This abstract class contains partial implementation of the [ExifDictionary](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_ExifDictionary.htm.md), [IptcDictionary](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_IptcDictionary.htm.md), and [AdobeResourceDictionary](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_AdobeResourceDictionary.htm.md) classes. It is used to read, write, and modify metadata stored in images.
 
Metadata is stored as pairs of keys and values. Key is an EXIF/IPTC tag or image block ID, value is an actual value stored at this key. To get a piece of data from the collection use property [Item\[Object\]](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_MetadataDictionary_Item_1_d02429b3.htm.md) or method [GetItemArray(Object)](https://www.graphicsmill.com/docs/gm/M_Aurigma_GraphicsMill_Codecs_MetadataDictionary_GetItemArray_1_d02429b3.htm.md) (for several items). To check whether an item with certain key is available at the dictionary, you can use [Contains(Object)](https://www.graphicsmill.com/docs/gm/M_Aurigma_GraphicsMill_Codecs_MetadataDictionary_Contains_1_d02429b3.htm.md) method. You can also get all keys or all values through [Keys](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_MetadataDictionary_Keys.htm.md) or [Values](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_MetadataDictionary_Values.htm.md) property correspondingly. For easier displaying, you can convert key into human-readable text string using [GetKeyDescription(Object)](https://www.graphicsmill.com/docs/gm/M_Aurigma_GraphicsMill_Codecs_MetadataDictionary_GetKeyDescription_1_d02429b3.htm.md) method.
 
Typically you get this class instance from [Exif](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_ImageReader_Exif.htm.md), [Iptc](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_ImageReader_Iptc.htm.md), or [AdobeResources](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_ImageReader_AdobeResources.htm.md) property of the [ImageReader](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_ImageReader.htm.md). You can also create a new empty instance of [ExifDictionary](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_ExifDictionary.htm.md), [IptcDictionary](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_IptcDictionary.htm.md) or [AdobeResourceDictionary](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_AdobeResourceDictionary.htm.md) class and put necessary details using [Add(Object, Object)](https://www.graphicsmill.com/docs/gm/M_Aurigma_GraphicsMill_Codecs_MetadataDictionary_Add_2_df764941.htm.md) method. After that you can put this dictionary into [Exif](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_JpegWriter_Exif.htm.md), [Iptc](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_JpegWriter_Iptc.htm.md) or [AdobeResources](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Codecs_JpegWriter_AdobeResources.htm.md) property of the [JpegWriter](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_JpegWriter.htm.md) or [TiffWriter](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_TiffWriter.htm.md) class. This way you can save updated EXIF data into the image file.
 
## Inheritance Hierarchy
  
- System.Object
    - Aurigma.GraphicsMill.Codecs.MetadataDictionary
        - [Aurigma.GraphicsMill.Codecs.ExifDictionary](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_ExifDictionary.htm.md)
        - [Aurigma.GraphicsMill.Codecs.IptcDictionary](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_IptcDictionary.htm.md)
        - [Aurigma.GraphicsMill.Codecs.AdobeResourceDictionary](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Codecs_AdobeResourceDictionary.htm.md)
 
## Thread Safety
 Static members of this type are not safe for multi-threaded operations. Instance members of this type are not safe for multi-threaded operations.
   
## See Also

### Reference

- [MetadataDictionary Members](https://www.graphicsmill.com/docs/gm/AllMembers_T_Aurigma_GraphicsMill_Codecs_MetadataDictionary.htm.md)
- [Aurigma.GraphicsMill.Codecs Namespace](https://www.graphicsmill.com/docs/gm/N_Aurigma_GraphicsMill_Codecs.htm.md)

### Manual

- [Working with Metadata](https://www.graphicsmill.com/docs/gm/working-with-metadata.htm.md)
