Process Complex EXIF Types

EXIF Read Write

Reads and writes complex EXIF tags.

Сode Snippet

using (var jpegReader = new JpegReader("Chicago.jpg"))
using (var jpegWriter = new JpegWriter("ProcessComplexExifTypes.jpg", 70))
{
    var exif = new ExifDictionary(jpegReader.Exif);

    object[] latitude = null;

    if (exif.Contains(ExifDictionary.GpsLatitude))
    {
        latitude = exif.GetItemArray(ExifDictionary.GpsLatitude);
        latitude[0] = new UnsignedRational(113, 12);
    }
    else
    {
        // Alexandria, Virginia
        latitude = new object[] { new UnsignedRational(38, 1), new UnsignedRational(48, 1), new UnsignedRational(17, 1) };
    }

    exif.SetItemArray(ExifDictionary.GpsLatitude, latitude);

    var gpsVer = new object[] { (byte)2, (byte)0, (byte)0, (byte)1 };
    exif.SetItemArray(ExifDictionary.GpsVersionId, gpsVer);

    exif[ExifDictionary.Software] = "Aurigma Graphics Mill";
    jpegWriter.Exif = exif;

    Pipeline.Run(jpegReader + jpegWriter);
}

Input

Chicago.jpg

Output

WriteExifIptcMemoryFriendly.jpg

Download

For AI-assisted development: Download Graphics Mill Code Samples XML Catalog