HEIC ראשי תיבות של High-Efficiency Image Container. זוהי סיומת הקובץ לתמונות שצולמו עבור חלק ממכשירי Apple. זהו מיכל שיכול להכיל תמונות HEIF בפורמט תמונה ביעילות גבוהה. במאמר זה, נדון כיצד לחלץ, לעדכן ולהסיר את המטא נתונים של EXIF ו-XMP של תמונות HEIF/HEIC בתוך יישומי Java.

EXIF, פורמט קובץ התמונות להחלפה הוא התקן המגדיר כיצד לאחסן מאפייני מטא נתונים בתמונות ובפורמטי האודיו הנפוצים ביותר. XMP הוא תקן מטא נתונים מבוסס XML, שיכול לאחסן כל קבוצה של מאפייני מטא נתונים כצמדי שם/ערך.

הנושאים הבאים מכוסים להלן

Java API עבור EXIF ו-XMP Metadata

GroupDocs.Metadata מספק את ה-API למניפולציה של מטא נתונים עבור יישומי Java שלך. ה-API מאפשר לקרוא, לעדכן, להוסיף, לנקות/להסיר ולעבור תכונות עבור פורמטים רבים של קבצים. הוא תומך בתקני מטא נתונים שונים כמו EXIF, IPTC ו-XMP. מסמכי עיבוד תמלילים, גיליונות אלקטרוניים, מצגות, הודעות דואר אלקטרוני, ספרים אלקטרוניים, תמונות, ציורי AutoCAD, קובצי אודיו ווידאו, טורנטים, הם בין הפורמטים הנתמכים של מסמכים. ליתר דיוק, אתה יכול לבקר בתיעוד לרשימה המלאה של [פורמטי קבצים נתמכים למניפולציה של מטא נתונים].

הורד והגדר

קבל את ספריית המטא נתונים מהקטע הורדות. עבור יישום Java המבוסס על Maven, פשוט הוסף את התצורה הבאה של pom.xml. לאחר מכן, תוכל לנסות את הדוגמאות של מאמר זה, כמו גם את הדוגמאות הרבות נוספות הזמינות ב-GitHub. לפרטים, אתה יכול לבקר ב-API Reference.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-metadata</artifactId>
        <version>21.4</version> 
</dependency>

קרא נתוני EXIF של תמונות HEIF / HEIC ב-Java

להלן השלבים לקריאה וחילוץ של נתוני EXIF של תמונות HEIC ו-HEIF.

  • טען את תמונת HEIF או HEIC באמצעות המחלקה Metadata.
  • קבל את חבילת השורש.
  • אחזר את חבילת EXIF מחבילת השורש.
  • מחבילת EXIF, אתה יכול לעבור בין מאפייני הנתונים של EXIF.
  • יתר על כן, אתה יכול לקבל את IFD (מדריך קבצי תמונה) ומידע GPS מחבילת EXIF.

הקוד הבא מראה כיצד לקבל מידע על נתוני EXIF, IFD ו-GPS של תמונת HEIC באמצעות Java.

// קרא EXIF, EXIF IFD, EXIF GPS חבילת תמונות HEIF / HEIC ב-Java
Metadata metadata = new Metadata("image.heic");
IExif root = (IExif) metadata.getRootPackage();
if (root.getExifPackage() != null) {
    String pattern = "%s : %s";
    // קבל מידע על חבילת EXIF
   for (TiffTag tag : root.getExifPackage().toList()) {
        System.out.println(String.format(pattern, tag.getName(), tag.getInterpretedValue()));
    }
    // קבל מידע על חבילת EXIF IFD
   for (TiffTag tag : root.getExifPackage().getExifIfdPackage().toList()) {
        System.out.println(String.format(pattern, tag.getName(), tag.getInterpretedValue()));
    }
    // קבל מידע GPS
   for (TiffTag tag : root.getExifPackage().getGpsPackage().toList()) {
        System.out.println(String.format(pattern, tag.getName(), tag.getInterpretedValue()));
    }
}

קרא נתוני XMP של תמונות HEIC / HEIF ב-Java

השלבים הבאים קוראים מטא נתונים של XMP של תמונות HEIC או HEIF.

  • טען את תמונת HEIF או HEIC באמצעות המחלקה Metadata.
  • קבל את חבילת השורש בשיטת getRootPackage.
  • מחבילת השורש, אתה יכול לקבל את המידע הבסיסי של XMP.
  • בנוסף, אתה יכול לקבל את המידע של DCMI Dublin Core.
  • בנוסף, אתה יכול לקבל מידע על Photoshop בשיטת getPhotoshop.

קוד המקור הבא מראה כיצד לקבל מידע XMP basic, DCMI ו-Photoshop ב-Java.

// חלץ נתוני XMP Basic, DublinCore ו-Photoshop של תמונות heic ו-heif ב-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
    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());
	// ...
    }
    // מידע על פוטושופ
    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());
	// ...
    }
}

כמו כן, ישנן שיטות מגדיר רבות להגדיר או לעדכן מאפייני XMP שונים. אתה יכול אפילו לספק זוג מפתח-ערך משלך כדי להגדיר את המאפיין המותאם אישית של חבילת XMP.

הסר EXIF ו-XMP Metadata של תמונות HEIC/HEIF ב-Java

אתה יכול פשוט להגדיר את חבילת EXIF או XMP בהתאמה ל- null כדי להסיר את כל מאפייני המטא נתונים.

הקוד הבא מסיר את נתוני ה-EXIF של תמונות HEIC.

try (Metadata metadata = new Metadata("image.heic")) {
	IExif root = (IExif) metadata.getRootPackage();
	root.setExifPackage(null);
	metadata.save("no-exif-image.heic");
}

הקוד הבא מסיר את נתוני ה-XMP של תמונות HEIC.

try (Metadata metadata = new Metadata("image.heic")) {
	IXmp root = (IXmp) metadata.getRootPackage();
	root.setXmpPackage(null);
	metadata.save("no-xmp-image.heic");
}

סיכום

לסיכום, למדנו לחלץ, לעדכן, להסיר מטא נתונים של EXIF ו-XMP מתמונות HEIF/HEIC ב-Java. יתר על כן, ראית כיצד לקבל מידע IFD ו-GPS מתמונות אלה. עכשיו אתה יכול בקלות לקבל מידע זה וגם להמשיך בבניית יישומים משלך כמו GroupDocs.Metadata App Product Family כדי להפוך מידע מטא נתונים לאוטומטי.

למידע נוסף, אפשרויות ודוגמאות, אתה יכול לבקר במאגר תיעוד ומאגר GitHub. לשאלות נוספות, צור איתנו קשר ב פורום התמיכה.

ראה גם