HEIC تعني حاوية صور عالية الكفاءة. إنه امتداد الملف للصور الملتقطة لبعض أجهزة Apple. إنها حاوية يمكن أن تحتوي على صور HEIF بتنسيق صورة عالي الكفاءة. في هذه المقالة ، سنناقش كيفية استخراج وتحديث وإزالة بيانات EXIF و XMP الوصفية لصور HEIF / HEIC داخل تطبيقات Java.

EXIF ، تنسيق ملف الصورة القابل للاستبدال هو المعيار الذي يحدد كيفية تخزين خصائص البيانات الوصفية في أكثر تنسيقات الصور والصوت شيوعًا. XMP هو معيار بيانات تعريف يستند إلى XML ، يمكنه تخزين أي مجموعة من خصائص البيانات الوصفية كأزواج اسم / قيمة.

المواضيع التالية مغطاة أدناه

Java API لـ EXIF و XMP Metadata

يوفر GroupDocs.Metadata واجهة برمجة تطبيقات معالجة البيانات الوصفية لتطبيقات Java الخاصة بك. تسمح واجهة برمجة التطبيقات (API) بقراءة الميزات وتحديثها وإضافتها وتنظيفها / إزالتها واجتيازها للعديد من تنسيقات الملفات. وهو يدعم معايير البيانات الوصفية المختلفة مثل EXIF و IPTC و XMP. تعد مستندات معالجة الكلمات وجداول البيانات والعروض التقديمية ورسائل البريد الإلكتروني والكتب الإلكترونية والصور ورسومات AutoCAD وملفات الصوت والفيديو والسيول من بين تنسيقات المستندات المدعومة. بتعبير أدق ، يمكنك زيارة الوثائق للحصول على القائمة الكاملة تنسيقات الملفات المدعومة لمعالجة البيانات الوصفية.

التنزيل والتكوين

احصل على مكتبة البيانات الوصفية من قسم التنزيلات. بالنسبة إلى تطبيق Java المستند إلى Maven ، ما عليك سوى إضافة التكوين pom.xml التالي. بعد ذلك ، يمكنك تجربة أمثلة هذه المقالة بالإضافة إلى العديد من الأمثلة الأخرى المتوفرة على GitHub. للحصول على التفاصيل ، يمكنك زيارة مرجع API.

<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 باستخدام فئة البيانات الوصفية.
  • احصل على حزمة الجذر.
  • استرجع حزمة EXIF من حزمة الجذر.
  • من حزمة EXIF ، يمكنك اجتياز خصائص بيانات EXIF.
  • علاوة على ذلك ، يمكنك الحصول على IFD (دليل ملفات الصور) ومعلومات GPS من حزمة EXIF.

يوضح الكود التالي كيفية الحصول على بيانات EXIF و IFD و GPS metadata لصورة 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 باستخدام فئة البيانات الوصفية.
  • احصل على الحزمة الجذرية باستخدام طريقة getRootPackage.
  • من حزمة الجذر ، يمكنك الحصول على معلومات XMP الأساسية.
  • علاوة على ذلك ، يمكنك الحصول على معلومات DCMI Dublin Core.
  • بالإضافة إلى ذلك ، يمكنك الحصول على معلومات Photoshop باستخدام طريقة getPhotoshop.

توضح التعليمات البرمجية المصدر التالية كيفية الحصول على معلومات XMP الأساسية و DCMI و Photoshop في Java.

// استخراج بيانات XMP أساسي و DublinCore و Photoshop لصور heic و heif في Java
Metadata metadata = new Metadata("image.heic");
IXmp root = (IXmp) metadata.getRootPackage();

if (root.getXmpPackage() != null) {
    // XMP أساسي    
    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 على قيمة خالية لإزالة جميع خصائص البيانات الوصفية.

الكود التالي يزيل بيانات 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. لمزيد من الاستفسارات ، اتصل بنا على منتدى الدعم.

أنظر أيضا