إضافة أو إزالة بيانات تعريف XMP مخصصة من GIF باستخدام C #

يتم ترميز البيانات الأولية للنظام الأساسي للبيانات الوصفية الموسعة (XMP) كنص بتنسيق XML. يمكن استخدام نموذج بيانات XMP المحدد لتخزين أي مجموعة من خصائص البيانات الوصفية في شكل زوج اسم / قيمة. يمكنك إضافة حزمة بيانات تعريف XMP مخصصة إلى صورك برمجيًا. في هذه المقالة ، ستتعلم كيفية إضافة بيانات تعريف XMP المخصصة أو إزالتها من GIF باستخدام C #.

تتم مناقشة / تغطية الموضوعات التالية في هذه المقالة:

C # API لإضافة أو إزالة بيانات تعريف XMP

سأستخدم GroupDocs.Metadata for .NET API لإضافة أو إزالة حزمة بيانات تعريف XMP المخصصة. يسمح لك بإضافة خصائص البيانات الوصفية وتحريرها واستردادها وإزالتها من المستندات وتنسيقات ملفات الصور. تعمل واجهة برمجة التطبيقات مع أكثر معايير البيانات الوصفية شهرة مثل المضمنة و XMP و EXIF و IPTC و Image Resource Blocks و ID3 وخصائص البيانات الوصفية المخصصة. يمكن استخدامه لتطوير التطبيقات في أي بيئة تطوير تستهدف منصة .NET.

يمكنك إما تنزيل DLL من API أو تثبيته باستخدام NuGet.

Install-Package GroupDocs.Metadata

أضف حزمة بيانات تعريف XMP مخصصة إلى GIF باستخدام C

يمكنك بسهولة إنشاء وإضافة حزمة XMP مخصصة بالكامل تحتوي على خصائص محددة من قبل المستخدم باتباع الخطوات البسيطة المذكورة أدناه:

  • قم بإنشاء مثيل لفئة Metadata
  • قدم مسار صورة GIF
  • GetRootPackage as IXmp standard
  • قم بإنشاء مثيل لفئة XmpPackage
  • قم بتوفير بادئة الحزمة و NamespaceUri
  • عيّن الخصائص في زوج الاسم / القيمة باستخدام طريقة Set
  • قم بإنشاء مثيل لفئة XmpPacketWrapper
  • قم باستدعاء طريقة AddPackage وتمرير XmpPackage الذي تم إنشاؤه
  • تعيين XmpPacketWrapper الذي تم إنشاؤه إلى IXMp. XmpPackage
  • احفظ ملف الإخراج باستخدام طريقة Metadata.Save

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء حزمة بيانات تعريف XMP مخصصة وإضافتها إلى صورة GIF باستخدام C #.

using (Metadata metadata = new Metadata(@"C:\Files\xmp.gif")) {

  IXmp root = (IXmp)metadata.GetRootPackage();
  XmpPacketWrapper packet = new XmpPacketWrapper();

  XmpPackage custom = new XmpPackage("gd", "https://groupdocs.com");
  custom.Set("gd:Copyright", "Copyright (C) 2021 GroupDocs. All Rights Reserved.");
  custom.Set("gd:CreationDate", DateTime.Now.ToString());
  custom.Set("gd:Company", XmpArray.From(new String[] { "Aspose", "GroupDocs" }, XmpArrayType.Ordered));

  packet.AddPackage(custom);
  root.XmpPackage = packet;
  metadata.Save(@"C:\Files\xmp_output.gif");
}

يجب أن تضيف عينة الكود أعلاه حزمة بيانات تعريف XMP إلى صورة الإدخال. يقوم ExifTool بقراءة البيانات الأولية التالية من صورة GIF الناتجة.

أضف حزمة بيانات تعريف XMP إلى GIF باستخدام C #

أضف حزمة بيانات تعريف XMP إلى GIF باستخدام C #

تعرض الواجهة IXMP خاصية XmpPackage {. brokenlink} للحصول على حزمة بيانات تعريف XMP أو تعيينها.

توفر فئة البيانات الوصفية طريقة GetRootPackage للحصول على حزمة الجذر التي توفر الوصول إلى جميع خصائص البيانات الوصفية المستخرجة من الملف.

توفر فئة XmpPackage خصائص متنوعة لتعريف الحزمة مثل بادئة و NamespaceUri و مفاتيح. توفر هذه الفئة أيضًا أساليب Set لتعيين الاسم / القيمة لخصائص البيانات الوصفية التي يحددها المستخدم.

تحتوي الفئة XmpPacketWrapper على حزمة XMP متسلسلة. تسمح طريقة AddPackage لهذه الفئة بإضافة الحزمة المخصصة المحددة.

يمكنك العثور على مزيد من التفاصيل حول “Working with XMP Metadata” في الوثائق.

قراءة خصائص البيانات الوصفية لحزمة XMP المخصصة باستخدام C

يمكنك بسهولة قراءة جميع الخصائص المعرفة من قبل المستخدم لحزمة XMP باتباع الخطوات البسيطة المذكورة أدناه:

  • قم بإنشاء مثيل لفئة Metadata
  • قدم مسار صورة GIF
  • GetRootPackage as IXmp standard
  • احصل على جميع الحزم واحدة تلو الأخرى من IXmp.XmpPackage.Packages
  • احصل على NamespaceUri و Prefix لكل حزمة
  • اتصل بـ FindProperties لكل مفتاح حزمة للحصول على اسم الخاصية والقيمة

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة كافة الخصائص المحددة في حزمة XMP المخصصة باستخدام C #.

string file = @"C:\Files\xmp_output.gif";
using (Metadata metadata = new Metadata(file)) 
{
  IXmp root = (IXmp)metadata.GetRootPackage();

  if (root.XmpPackage != null)
  {
    foreach (var package in root.XmpPackage.Packages)
    {
      Console.WriteLine(package.NamespaceUri);
      Console.WriteLine(package.Prefix);

      foreach(var keys in package.Keys)
      {
        var property = package.FindProperties(p => p.Name == keys).FirstOrDefault();
        Console.WriteLine(property.Name + " : " + property.Value);
      }
    }
  }
}

يجب أن ينتج عن عينة الكود أعلاه المخرجات التالية:

https://groupdocs.com
gd
gd:Copyright: Copyright (C) 2021 GroupDocs. All Rights Reserved.
gd:CreationDate: 04/05/2021 2:26:17 am
gd:Company: <rdf:Seq><rdf:li>Aspose</rdf:li><rdf:li>GroupDocs</rdf:li></rdf:Seq>

تقوم طريقة FindProperties الخاصة بفئة XmpPackage بالبحث بشكل متكرر والعثور على خصائص البيانات الوصفية التي ترضي المسند المحدد.

إزالة حزمة XMP المخصصة باستخدام C

يمكنك إزالة حزمة XMP من صور GIF باتباع الخطوات البسيطة المذكورة أدناه:

يوضح نموذج التعليمات البرمجية التالي كيفية إزالة حزمة بيانات تعريف XMP من صورة GIF باستخدام C #.

using (Metadata metadata = new Metadata(@"C:\Files\xmp_output.gif"))
{
  IXmp root = (IXmp)metadata.GetRootPackage();
  root.XmpPackage = null;
  metadata.Save(@"C:\Files\xmp_output_Removed.gif");
}

يجب أن يزيل نموذج الكود أعلاه حزمة بيانات تعريف XMP من صورة الإدخال. يقوم ExifTool بقراءة البيانات الأولية التالية من صورة GIF الناتجة.

إزالة XMP Metadata Package من GIF باستخدام C #

إزالة XMP Metadata Package من GIF باستخدام C #

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

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

استنتاج

في هذه المقالة ، تعلمت كيفية إضافة أو إزالة البيانات الوصفية لحزمة XMP المخصصة من صور GIF باستخدام C #. لقد تعلمت أيضًا كيفية قراءة خصائص حزمة XMP باستخدام C #. علاوة على ذلك ، يمكنك التعرف على GroupDocs.Metadata لـ .NET API باستخدام التوثيق. في حالة وجود أي غموض ، فلا تتردد في الاتصال بنا على المنتدى.

أنظر أيضا