HEIC (حاوية صورة عالية الكفاءة) عبارة عن حاوية يمكن أن تحتوي على صور HEIF بتنسيق صورة عالي الكفاءة. XMP هو معيار بيانات تعريف يستند إلى XML ، يمكنه تخزين خصائص البيانات الوصفية كأزواج اسم / قيمة. ومع ذلك ، فإن EXIF (تنسيق ملف الصورة القابل للاستبدال) هو المعيار ويحدد كيفية تخزين خصائص البيانات الوصفية في أكثر تنسيقات الصور والصوت شيوعًا. في هذه المقالة ، سوف نتعلم كيفية استخراج وتحديث وإزالة بيانات XMP و EXIP الوصفية لصور HEIF / HEIC باستخدام C # داخل تطبيقات .NET.

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

.NET API للبيانات الوصفية XMP و EXIF

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

يمكنك تنزيل مثبت DLL أو MSI من قسم التنزيلات أو تثبيت API في تطبيق .NET عبر NuGet.

PM> Install-Package GroupDocs.Metadata

قراءة بيانات EXIF لصور HEIC / HEIF في C

فيما يلي خطوات قراءة واستخراج بيانات EXIF لصور HEIC و HEIF.

  • قم بتحميل صورة HEIF أو HEIC باستخدام فئة البيانات الوصفية.
  • احصل على حزمة الجذر.
  • استرجع حزمة EXIF من حزمة الجذر.
  • اجتياز خصائص بيانات EXIF.
  • علاوة على ذلك ، يمكنك الحصول على IFD (دليل ملفات الصور) ومعلومات GPS من حزمة EXIF.

يوضح الكود التالي كيفية الحصول على بيانات EXIF و IFD و GPS metadata لصورة HEIC باستخدام C #.

// قراءة حزمة EXIF و EXIF IFD و EXIF GPS لصور HEIF / HEIC في C #
using (Metadata metadata = new Metadata(@"image.heic"))
{
    IExif root = metadata.GetRootPackage() as IExif;
    if (root != null && root.ExifPackage != null)
    {
        const string pattern = "{0} = {1}";

        foreach (TiffTag tag in root.ExifPackage.ToList())
        {
            Console.WriteLine(pattern, tag.TagID, tag.Value);
        }

        foreach (TiffTag tag in root.ExifPackage.ExifIfdPackage.ToList())
        {
            Console.WriteLine(pattern, tag.TagID, tag.Value);
        }

        foreach (TiffTag tag in root.ExifPackage.GpsPackage.ToList())
        {
            Console.WriteLine(pattern, tag.TagID, tag.Value);
        }
    }
}

قراءة بيانات XMP لصور HEIC / HEIF في C

تقرأ الخطوات التالية بيانات XMP الوصفية لصور HEIC أو HEIF.

  • قم بتحميل صورة HEIF أو HEIC باستخدام فئة البيانات الوصفية.
  • احصل على الحزمة الجذرية باستخدام طريقة getRootPackage.
  • من حزمة الجذر ، يمكنك الحصول على معلومات XMP الأساسية.
  • علاوة على ذلك ، يمكنك الحصول على معلومات DCMI Dublin Core.
  • بالإضافة إلى ذلك ، يمكنك الحصول على معلومات Photoshop باستخدام طريقة getPhotoshop.

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

// استخراج بيانات XMP Basic و DublinCore و Photoshop لصور HEIC و HEIF في C #
using (Metadata metadata = new Metadata(@"xmp.heic"))
{
    IXmp root = metadata.GetRootPackage() as IXmp;
    if (root != null && root.XmpPackage != null)
    {
        if (root.XmpPackage.Schemes.XmpBasic != null)
        {
            Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.CreatorTool);
            Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.CreateDate);
            Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.ModifyDate);
            Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.Label);
            Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.Nickname);
            // ...
        }
        if (root.XmpPackage.Schemes.DublinCore != null)
        {
            Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Format);
            Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Coverage);
            Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Identifier);
            Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Source);
            // ...
        }
        if (root.XmpPackage.Schemes.Photoshop != null)
        {
            Console.WriteLine(root.XmpPackage.Schemes.Photoshop.ColorMode);
            Console.WriteLine(root.XmpPackage.Schemes.Photoshop.IccProfile);
            Console.WriteLine(root.XmpPackage.Schemes.Photoshop.Country);
            Console.WriteLine(root.XmpPackage.Schemes.Photoshop.City);
            Console.WriteLine(root.XmpPackage.Schemes.Photoshop.DateCreated);
            // ... 
        }
        // ...
    }
}

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

قم بإزالة EXIF و XMP Metadata لصور HEIC / HEIF في C

يمكنك فقط ضبط حزمة EXIF أو حزمة XMP على قيمة خالية لإزالة جميع خصائص البيانات الوصفية.

يزيل الكود التالي بيانات EXIF لصور HEIC في C #.

using (Metadata metadata = new Metadata("image.heic"))
{
	IExif root = metadata.GetRootPackage() as IExif;
	if (root != null)
	{
		root.ExifPackage = null;
		metadata.Save("no-exif-image.heic");
	}
}

يزيل الكود التالي بيانات XMP لصور HEIC في C #.

using (Metadata metadata = new Metadata("image.heic"))
{
	IXmp root = metadata.GetRootPackage() as IXmp;
	if (root != null)
	{
		root.XmpPackage = null;
		metadata.Save("no-xmp-image.heic");
	}
}

احصل على ترخيص API مجاني

يمكنك الحصول على ترخيص مؤقت مجاني من أجل استخدام واجهة برمجة التطبيقات بدون قيود التقييم.

استنتاج

باختصار ، لقد تعلمنا استخراج البيانات الوصفية EXIF و XMP وتحديثها وإزالتها من صور HEIF / HEIC في C #. علاوة على ذلك ، لقد رأيت كيفية الحصول على معلومات IFD و GPS من هذه الصور. الآن يمكنك بسهولة الحصول على هذه المعلومات والبدء أيضًا في إنشاء تطبيقاتك الخاصة مثل GroupDocs.Metadata App Product Family لأتمتة معلومات البيانات الوصفية.

لمزيد من المعلومات والخيارات والأمثلة ، يمكنك زيارة التوثيق ومستودع GitHub. لمزيد من الاستفسارات ، اتصل بنا على منتدى الدعم.

أنظر أيضا