GroupDocs.Metadata for .NET 17.08 Release Notes

Major Features

There are 2 new features, 2 ehnancements and 1 fix in this regular monthly release. The most notable are:

  • Ability to read CANON maker notes in JPEG image
  • Ability to read Panasonic maker notes in JPEG image
  • Ability to read EXIF maker-notes from Nikon D models (D300, D500, D600, D5100 etc)
  • Ability to read EXIF maker-notes from Sony xperia, cybershot models
  • Xmp metadata is absent after removing EXIF geo-location

All Changes

KeySummaryCategory
METADATANET-1845Ability to read EXIF maker-notes from Nikon D models (D300, D500, D600, D5100 etc)Enhancement
METADATANET-1846Ability to read EXIF maker-notes from Sony xperia, cybershot modelsEnhancement
METADATANET-1731Ability to read CANON maker notes in JPEG imageNew Feature
METADATANET-1803Ability to read Panasonic maker notes in JPEG imageNew Feature
METADATANET-1836Xmp metadata is absent after removing EXIF geo-locationBug

Public API and Backward Incompatible Changes

Ability to read EXIF maker-notes from Nikon D models (D300, D500, D600, D5100 etc)

This feature allows to read EXIF maker-notes from Nikon D models (D300, D500, D600, D5100 etc).

Public API changes

None

This example demonstrates how to get NIKON makernotes.

// path to the jpg file
string path = @"C:\\example.jpg";

// initialize JpegFormat
JpegFormat jpegFormat = new JpegFormat(path);                   
            
// get makernotes
var makernotes = jpegFormat.GetMakernotes();

if (makernotes != null)
{
    // try cast to NikonMakerNotes
    NikonMakerNotes nikonMakerNotes = makernotes as NikonMakerNotes;                
    if (nikonMakerNotes != null)
    {
        // get quality string
        string quality = nikonMakerNotes.Quality;

        // get version
        byte[] version = nikonMakerNotes.MakerNoteVersion;
    }
}

Ability to read EXIF maker-notes from Sony xperia, cybershot models

This feature allows to read EXIF maker-notes from Sony xperia, cybershot models.

Public API changes

None

This example demonstrates how to get SONY makernotes.

// path to the jpg file
string path = @"C:\\example.jpg";

// initialize JpegFormat
JpegFormat jpegFormat = new JpegFormat(path);

// get makernotes
var makernotes = jpegFormat.GetMakernotes();

if (makernotes != null)
{
    // try cast to SonyMakerNotes
    SonyMakerNotes sonyMakerNotes = makernotes as SonyMakerNotes;
    if (sonyMakerNotes != null)
    {
        // get color mode
        int? colorMode = sonyMakerNotes.ColorMode;

        // get JPEG quality
        int? jpegQuality = sonyMakerNotes.JPEGQuality;
    }
}

Ability to read CANON maker notes in JPEG image

This feature allows to read CANON maker notes in JPEG image.

Public API changes

Added CanonMakerNotes class into namespace GroupDocs.Metadata.Formats.Image
Added CanonCameraSettings class into namespace GroupDocs.Metadata.Formats.Image

This example demonstrates how to get CANON maker-notes.

// path to the jpg file
string path = @"C:\\example.jpg";

// initialize JpegFormat
JpegFormat jpegFormat = new JpegFormat(path);

// get makernotes
var makernotes = jpegFormat.GetMakernotes();

if (makernotes != null)
{
    // try cast to CanonMakerNotes
    CanonMakerNotes canonMakerNotes = makernotes as CanonMakerNotes;
    if (canonMakerNotes != null)
    {
        // get cammera settings
        CanonCameraSettings cameraSettings = canonMakerNotes.CameraSettings;
        if (cameraSettings != null)
        {
            // get lens type
            int lensType = cameraSettings.LensType;

            // get quality
            int quality = cameraSettings.Quality;

            // get all values
            int[] allValues = cameraSettings.Values;
        }

        // get firmware version
        string firmwareVersion = canonMakerNotes.CanonFirmwareVersion;
    }
}

Ability to read Panasonic maker notes in JPEG image

This feature allows to read Panasonic maker notes in JPEG image.

Public API changes

Added PanasonicMakerNotes class into namespace GroupDocs.Metadata.Formats.Image

This example demonstrates how to get Panasonic makernotes.

// path to the jpg file
string path = @"C:\\example.jpg";

// initialize JpegFormat
JpegFormat jpegFormat = new JpegFormat(path);

// get makernotes
var makernotes = jpegFormat.GetMakernotes();

if (makernotes != null)
{
    // try cast to PanasonicMakerNotes
    PanasonicMakerNotes panasonicMakerNotes = makernotes as PanasonicMakerNotes;
    if (panasonicMakerNotes != null)
    {
        // get firmware version
        string firmwareVersion = panasonicMakerNotes.FirmwareVersion;

        // get image quality
        int? imageQuality = panasonicMakerNotes.ImageQuality;

        // get lens type
        string lensType = panasonicMakerNotes.LensType;
    }
}

Xmp metadata is absent after removing EXIF geo-location

The bug related to absence of XMP metadata after removing EXIF geo-location has been resolved.

Public API changes

None

This example demonstrates how to remove EXIF geo-location.

// path to the jpg file
string path = @"C:\\example.jpg";

// initialize JpegFormat
JpegFormat jpegFormat = new JpegFormat(path);

// check if JPEG contains XMP metadata
if (jpegFormat.HasXmp)
{
 // remove GPS location
 jpegFormat.RemoveGpsLocation();

 // update Dublin Core format in XMP
 jpegFormat.XmpValues.Schemes.DublinCore.Format = "image/jpeg";

 // and commit changes
 jpegFormat.Save();
}