Last active
May 12, 2021 08:02
-
-
Save GroupDocsGists/7a8203b8c12e144476a5c260f91133e7 to your computer and use it in GitHub Desktop.
Read EXIF and XMP data of HEIF and HIEC images in Java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Read EXIF, EXIF IFD, EXIF GPS Package of HEIF / HEIC images in Java | |
Metadata metadata = new Metadata("image.heic"); | |
IExif root = (IExif) metadata.getRootPackage(); | |
if (root.getExifPackage() != null) { | |
String pattern = "%s : %s"; | |
// Get EXIF Package information | |
for (TiffTag tag : root.getExifPackage().toList()) { | |
System.out.println(String.format(pattern, tag.getName(), tag.getInterpretedValue())); | |
} | |
// Get EXIF IFD Package Information | |
for (TiffTag tag : root.getExifPackage().getExifIfdPackage().toList()) { | |
System.out.println(String.format(pattern, tag.getName(), tag.getInterpretedValue())); | |
} | |
// Get GPS information | |
for (TiffTag tag : root.getExifPackage().getGpsPackage().toList()) { | |
System.out.println(String.format(pattern, tag.getName(), tag.getInterpretedValue())); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Extract XMP Basic, DublinCore and Photoshop data of heic and heif images in Java | |
Metadata metadata = new Metadata("image.heic"); | |
IXmp root = (IXmp) metadata.getRootPackage(); | |
if (root.getXmpPackage() != null) { | |
// XMP Basic | |
if (root.getXmpPackage().getSchemes().getXmpBasic() != null) { | |
XmpBasicPackage xmpBasicPackage = root.getXmpPackage().getSchemes().getXmpBasic(); | |
System.out.println("Creator Tool : " + xmpBasicPackage.getCreatorTool()); | |
System.out.println("Create Date : " + xmpBasicPackage.getCreateDate()); | |
System.out.println("Modify Date : " + xmpBasicPackage.getModifyDate()); | |
System.out.println("Label : " + xmpBasicPackage.getLabel()); | |
System.out.println("Nick Name: " + xmpBasicPackage.getNickname()); | |
// ... | |
} | |
// DublinCore information | |
if (root.getXmpPackage().getSchemes().getDublinCore() != null) { | |
XmpDublinCorePackage xmpDublinCorePackage = root.getXmpPackage().getSchemes().getDublinCore(); | |
System.out.println("Format : " + xmpDublinCorePackage.getFormat()); | |
System.out.println("Coverage :" + xmpDublinCorePackage.getCoverage()); | |
System.out.println("Identifier : " + xmpDublinCorePackage.getIdentifier()); | |
System.out.println("Source : " + xmpDublinCorePackage.getSource()); | |
// ... | |
} | |
// Photoshop Information | |
if (root.getXmpPackage().getSchemes().getPhotoshop() != null) { | |
XmpPhotoshopPackage xmpPhotoshopPackage = root.getXmpPackage().getSchemes().getPhotoshop(); | |
System.out.println("Color Mode : " + xmpPhotoshopPackage.getColorMode()); | |
System.out.println("ICC Profile : " + xmpPhotoshopPackage.getIccProfile()); | |
System.out.println("Country : " + xmpPhotoshopPackage.getCountry()); | |
System.out.println("City : " + xmpPhotoshopPackage.getCity()); | |
System.out.println("Date Created : " + xmpPhotoshopPackage.getDateCreated()); | |
// ... | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
try (Metadata metadata = new Metadata("image.heic")) { | |
IExif root = (IExif) metadata.getRootPackage(); | |
root.setExifPackage(null); | |
metadata.save("no-exif-image.heic"); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
try (Metadata metadata = new Metadata("image.heic")) { | |
IXmp root = (IXmp) metadata.getRootPackage(); | |
root.setXmpPackage(null); | |
metadata.save("no-xmp-image.heic"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment