GroupDocs.Metadata for Java 20.3 Release Notes

Major Features

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

  • Implement the ability to work with EXIF metadata in PSD images
  • Implement the ability to work with XMP metadata in WEBP images

Full List of Issues Covering all Changes in this Release

KeySummaryCategory
METADATANET-2849Implement the ability to work with EXIF metadata in PSD imagesNew Feature
METADATANET-2850Implement the ability to work with XMP metadata in WEBP imagesNew Feature

Public API and Backward Incompatible Changes

Implement the ability to work with EXIF metadata in PSD images

This new feature allows the user to update (or remove) EXIF metadata in a PSD file.

Public API changes

The setExifPackage method has been added to the PsdRootPackage class

The PsdRootPackage class now implements the IExif interface

Use cases

Update EXIF metadata properties in a PSD file

Java

 try (Metadata metadata = new Metadata("D:\\input.psd")) {
	IExif root = (IExif) metadata.getRootPackage();

	// Set the EXIF package if it's missing
	if (root.getExifPackage() == null) {
		root.setExifPackage(new ExifPackage());
	}

	root.getExifPackage().setCopyright("Copyright (C) 2011-2020 GroupDocs. All Rights Reserved.");
	root.getExifPackage().setImageDescription("test image");
	root.getExifPackage().setSoftware("GroupDocs.Metadata");

	// ...

	root.getExifPackage().getExifIfdPackage().setBodySerialNumber("test");
	root.getExifPackage().getExifIfdPackage().setCameraOwnerName("GroupDocs");
	root.getExifPackage().getExifIfdPackage().setUserComment("test comment");

	// ...

	metadata.save("D:\\output.psd");
}

Implement the ability to work with XMP metadata in WEBP images

This new feature allows the user to work with XMP metadata in WEBP images.

Public API changes

The getXmpPackage method has been added to the WebPRootPackage class

The setXmpPackage method has been added to the WebPRootPackage class

The WebPRootPackage class now implements the IXmp interface

Use cases

Extract XMP metadata properties from a WEBP image

Java

 try (Metadata metadata = new Metadata("D:\\input.webp")) {
	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());

			// ...
		}

		// ...
	}
}