Table of Contents

IptcDictionary Class

Definition

Namespace
GleamTech.ImageUltimate
Assembly
GleamTech.ImageUltimate.dll

Represents a dictionary of IPTC entries.

public sealed class IptcDictionary : IMetadataDictionary<IptcTag, IptcEntry>, IEnumerable<IptcEntry>, IEnumerable
Inheritance
IptcDictionary
Implements

Examples

//Load image info of "c:\SomeFolder\InputFile.png"
using (var imageInfo = new ImageInfo(@"c:\SomeFolder\InputFile.png"))
{
}

//---------------------------------------

//Load with a virtual path string:
//See below for other path string examples.
using (var imageInfo = new ImageInfo("~/SomeFolder/InputFile.png"))
{
}

//Load with a URL string:
//See below for other path string examples.
using (var imageInfo = new ImageInfo("http://example.com/SomeFolder/InputFile.png"))
{
}

//Load with a Data URL string:
//See below for other path string examples.
using (var imageInfo = new ImageInfo("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"))
{
}

//Load with a file provider instance:
//See below for other file provider examples (UNC Path, AmazonS3, AzureBlob, Database etc.).
var fileProvider = new FileSystemFileProvider
{
    File = "InputFile.png",
    Location = new PhysicalLocation
    {
        Path = @"c:\SomeFolder"
    }
};
using (var imageInfo = new ImageInfo(fileProvider))
{
}

//Load with a provider string:
//See below for other provider string examples (UNC Path, AmazonS3, AzureBlob, Database etc.).
using (var imageInfo = new ImageInfo(@"Type=FileSystem; File=InputFile.png; Location='Type=Physical; Path=c:\SomeFolder'"))
{
}
'Load image info of "c:\SomeFolder\InputFile.png"
Using imageInfo As New ImageInfo("c:\SomeFolder\InputFile.png")
End Using

'---------------------------------------

'Load with a virtual path string:
'See below for other path string examples.
Using imageInfo As New ImageInfo("~/SomeFolder/InputFile.png")
End Using

'Load with a URL string:
'See below for other path string examples.
Using imageInfo As New ImageInfo("http://example.com/SomeFolder/InputFile.png")
End Using

'Load with a Data URL string:
'See below for other path string examples.
Using imageInfo As New ImageInfo("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")
End Using

'Load with a file provider instance:
'See below for other file provider examples (UNC Path, AmazonS3, AzureBlob, Database etc.).
Dim fileProvider As New FileSystemFileProvider() With {
    .File = "InputFile.png",
    .Location = New PhysicalLocation() With {
        .Path = "c:\SomeFolder"
    }
}
Using imageInfo As New ImageInfo(fileProvider)
End Using

'Load with a provider string:
'See below for other provider string examples (UNC Path, AmazonS3, AzureBlob, Database etc.).
Using imageInfo As New ImageInfo("Type=FileSystem; File=InputFile.png; Location='Type=Physical; Path=c:\SomeFolder'")
End Using

//Show info for a specific EXIF tag:
using (var imageInfo = new ImageInfo(@"C:\Input\Picture1.jpg"))
{
    var entry = imageInfo.ExifDictionary[ExifTag.Image.Artist];
    Console.WriteLine("Tag: " + entry.Tag);
    Console.WriteLine("Value: " + entry.Value);
    Console.WriteLine("Description: " + entry.Tag.Description);
    Console.WriteLine();

    if (imageInfo.ExifDictionary.TryGet(ExifTag.Image.Software, out ExifEntry entry2))
    {
        Console.WriteLine("Tag: " + entry2.Tag);
        Console.WriteLine("Value: " + entry2.Value);
        Console.WriteLine("Description: " + entry2.Tag.Description);
        Console.WriteLine();
    }
}

//Show info for a specific IPTC tag:
using (var imageInfo = new ImageInfo(@"C:\Input\Picture1.jpg"))
{
    var entry = imageInfo.IptcDictionary[IptcTag.Application2.Byline];
    Console.WriteLine("Tag: " + entry.Tag);
    Console.WriteLine("Value: " + entry.Value);
    Console.WriteLine("Description: " + entry.Tag.Description);
    Console.WriteLine();

    if (imageInfo.IptcDictionary.TryGet(IptcTag.Application2.ObjectName, out IptcEntry entry2))
    {
        Console.WriteLine("Tag: " + entry2.Tag);
        Console.WriteLine("Value: " + entry2.Value);
        Console.WriteLine("Description: " + entry2.Tag.Description);
        Console.WriteLine();
    }

    if (imageInfo.IptcDictionary.TryGet(IptcTag.Application2.Category, out IptcEntry[] entries))
    {
        foreach (var entry3 in entries)
        {
            Console.WriteLine("Tag: " + entry3.Tag);
            Console.WriteLine("Value: " + entry3.Value);
            Console.WriteLine("Description: " + entry3.Tag.Description);
            Console.WriteLine();
        }
    }
}
'Show info for a specific EXIF tag:
Using imageInfo As New ImageInfo("C:\Input\Picture1.jpg")
    Dim entry = imageInfo.ExifDictionary(ExifTag.Image.Artist)
    Console.WriteLine("Tag: " + entry.Tag.ToString())
    Console.WriteLine("Value: " + entry.Value)
    Console.WriteLine("Description: " + entry.Tag.Description)
    Console.WriteLine()

    Dim entry2 As ExifEntry
    If imageInfo.ExifDictionary.TryGet(ExifTag.Image.Software, entry2) Then
        Console.WriteLine("Tag: " + entry2.Tag.ToString())
        Console.WriteLine("Value: " + entry2.Value)
        Console.WriteLine("Description: " + entry2.Tag.Description)
        Console.WriteLine()
    End If
End Using

'Show info for a specific IPTC tag:
Using imageInfo As New ImageInfo("C:\Input\Picture1.jpg")
    Dim entry = imageInfo.IptcDictionary(IptcTag.Application2.Byline)
    Console.WriteLine("Tag: " + entry.Tag.ToString())
    Console.WriteLine("Value: " + entry.Value)
    Console.WriteLine("Description: " + entry.Tag.Description)
    Console.WriteLine()

    Dim entry2 As IptcEntry
    If imageInfo.IptcDictionary.TryGet(IptcTag.Application2.ObjectName, entry2) Then
        Console.WriteLine("Tag: " + entry2.Tag.ToString())
        Console.WriteLine("Value: " + entry2.Value)
        Console.WriteLine("Description: " + entry2.Tag.Description)
        Console.WriteLine()
    End If

    Dim entries As IptcEntry()
    If imageInfo.IptcDictionary.TryGet(IptcTag.Application2.Category, entries) Then
        For Each entry3 In entries
            Console.WriteLine("Tag: " + entry3.Tag.ToString())
            Console.WriteLine("Value: " + entry3.Value)
            Console.WriteLine("Description: " + entry3.Tag.Description)
            Console.WriteLine()
        Next
    End If
End Using

//Modifying EXIF metadata:
using (var imageTask = new ImageTask(@"C:\Input\Picture1.jpg"))
{
    imageTask.Info.ExifDictionary.Remove(ExifTag.Image.Software);
    imageTask.Info.ExifDictionary.Set(ExifTag.Image.Artist, "UPDATED Artist TAG");

    imageTask.Info.IptcDictionary.Remove(IptcTag.Application2.Byline);
    imageTask.Info.IptcDictionary.Set(IptcTag.Application2.ObjectName, "UPDATED ObjectName TAG");

    imageTask.Save(@"C:\Output\Picture2.jpg");
}
'Modifying EXIF metadata:
Using imageTask = New ImageTask("C:\Input\Picture1.jpg")
    imageTask.Info.ExifDictionary.Remove(ExifTag.Image.Software)
    imageTask.Info.ExifDictionary.Set(ExifTag.Image.Artist, "UPDATED Artist TAG")

    imageTask.Info.IptcDictionary.Remove(IptcTag.Application2.Byline)
    imageTask.Info.IptcDictionary.Set(IptcTag.Application2.ObjectName, "UPDATED ObjectName TAG")

    imageTask.Save("C:\Output\Picture2.jpg")
End Using

Constructors

IptcDictionary()

Initializes a new instance of the IptcDictionary class.

Properties

Count

Gets the number of entries contained in this dictionary.

IsChanged

Gets a value indicating whether this dictionary is changed.

this[IptcTag]

Gets the first occurrence of the entry for the specified tag.

Methods

Clear()

Removes all entries from this dictionary.

Contains(IptcTag)

Determines whether this dictionary contains an entry with the specified tag.

GetEnumerator()

Returns an enumerator that iterates through this dictionary.

Remove(IptcTag)

Removes all entries for the specified tag from this dictionary.

Remove(IptcTag, string)

Removes the entry for the specified tag and value from this dictionary.

Set(IptcTag, object)

Sets the value for the specified tag in this dictionary.

TryGet(IptcTag, out IptcEntry)

Gets the first occurrence of the entry associated with the specified tag.

TryGet(IptcTag, out IptcEntry[])

Gets all entries associated with the specified tag.