GroupDocs.Metadata for Java 20.5 Release Notes

Major Features

There are the following features, enhancements and fixes in this release:

  • Remove obsolete API (Legacy namespace)
  • Implement the ability to work with EXIF metadata in WEBP images
  • Implement the ability to work with XMP metadata in MOV files

Full List of Issues Covering all Changes in this Release

KeySummaryCategory
METADATANET-3293Remove obsolete API (Legacy namespace)Improvement
METADATANET-2851Implement the ability to work with EXIF metadata in WEBP imagesNew Feature
METADATANET-2854Implement the ability to work with XMP metadata in MOV filesNew Feature

Public API and Backward Incompatible Changes

Remove obsolete API (Legacy namespace)

All types from the com.groupdocs.metadata.legacy package were removed.

Public API changes

All types from the com.groupdocs.metadata.legacy package were removed

Use cases

See the migration notes for brief comparison of the old and new API

Implement the ability to work with EXIF metadata in WEBP images

This new feature allows the user to read, update and remove EXIF metadata in WEBP images.

Public API changes

The following methods have been added to the WebPRootPackage class

The WebPRootPackage class now implements the IExif interface

Use cases

Read EXIF metadata properties in a WEBP image

Java

try (Metadata metadata = new Metadata("D:\\exif.webp")) {
	IExif root = (IExif) metadata.getRootPackage();
	if (root.getExifPackage() != null) {

		System.out.println(root.getExifPackage().getArtist());
		System.out.println(root.getExifPackage().getCopyright());
		System.out.println(root.getExifPackage().getImageDescription());
		System.out.println(root.getExifPackage().getMake());
		System.out.println(root.getExifPackage().getModel());
		System.out.println(root.getExifPackage().getSoftware());
		System.out.println(root.getExifPackage().getImageWidth());
		System.out.println(root.getExifPackage().getImageLength());

		// ...
		System.out.println(root.getExifPackage().getExifIfdPackage().getBodySerialNumber());
		System.out.println(root.getExifPackage().getExifIfdPackage().getCameraOwnerName());
		System.out.println(root.getExifPackage().getExifIfdPackage().getUserComment());

		// ...
		System.out.println(root.getExifPackage().getGpsPackage().getAltitude());
		System.out.println(root.getExifPackage().getGpsPackage().getLatitudeRef());
		System.out.println(root.getExifPackage().getGpsPackage().getLongitudeRef());

		// ...
	}
}

Implement the ability to work with XMP metadata in MOV files

This new feature allows the user to read, update and remove XMP metadata in MOV video files.

Public API changes

The following methods have been added to the MovRootPackage class

The MovRootPackage class now implements the IXmp interface

Use cases

Read XMP metadata properties in a MOV video

Java

try (Metadata metadata = new Metadata("D:\\xmp.mov")) {
	IXmp root = (IXmp) metadata.getRootPackage();
	if (root.getXmpPackage() != null) {
		if (root.getXmpPackage().getSchemes().getXmpBasic() != null) {
			System.out.println(root.getXmpPackage().getSchemes().getXmpBasic().getCreatorTool());
			System.out.println(root.getXmpPackage().getSchemes().getXmpBasic().getCreateDate());
			System.out.println(root.getXmpPackage().getSchemes().getXmpBasic().getModifyDate());
			System.out.println(root.getXmpPackage().getSchemes().getXmpBasic().getLabel());
			System.out.println(root.getXmpPackage().getSchemes().getXmpBasic().getNickname());

			// ...
		}
		if (root.getXmpPackage().getSchemes().getDublinCore() != null) {
			System.out.println(root.getXmpPackage().getSchemes().getDublinCore().getFormat());
			System.out.println(root.getXmpPackage().getSchemes().getDublinCore().getCoverage());
			System.out.println(root.getXmpPackage().getSchemes().getDublinCore().getIdentifier());
			System.out.println(root.getXmpPackage().getSchemes().getDublinCore().getSource());

			// ...
		}
		if (root.getXmpPackage().getSchemes().getPhotoshop() != null) {
			System.out.println(root.getXmpPackage().getSchemes().getPhotoshop().getColorMode());
			System.out.println(root.getXmpPackage().getSchemes().getPhotoshop().getIccProfile());
			System.out.println(root.getXmpPackage().getSchemes().getPhotoshop().getCountry());
			System.out.println(root.getXmpPackage().getSchemes().getPhotoshop().getCity());
			System.out.println(root.getXmpPackage().getSchemes().getPhotoshop().getDateCreated());

			// ...
		}

		// ...
	}
}