افزودن یا حذف متاداده XMP سفارشی از GIF با استفاده از جاوا

مدل داده‌های پلتفرم متاداده قابل گسترش (XMP) می‌تواند برای ذخیره هر مجموعه‌ای از ویژگی‌های متاداده به صورت جفت نام/مقدار که به عنوان متن فرمت شده XML کدگذاری شده است، استفاده شود. به عنوان یک توسعه‌دهنده جاوا، می‌توانید به راحتی یک بسته متاداده XMP سفارشی به تصاویر خود به صورت برنامه‌نویسی اضافه کنید. در این مقاله، خواهید آموخت که چگونه متاداده XMP سفارشی را به GIF اضافه یا حذف کنید با استفاده از جاوا.

موضوعات زیر در این مقاله مورد بحث قرار گرفته‌اند:

API Java برای افزودن یا حذف متادیتای سفارشی XMP

برای افزودن یا حذف بسته متادیتای سفارشی XMP از تصاویر GIF، ما از API GroupDocs.Metadata for Java استفاده خواهیم کرد. این API به شما امکان می‌دهد تا متادیتا را اضافه، ویرایش، بازیابی و حذف کنید و ویژگی‌های متادیتا را از اسناد و فرمت‌های فایل تصویری پشتیبانی شده مدیریت کنید. این API با مهم‌ترین استانداردهای متادیتا کار می‌کند، از جمله ویژگی‌های متادیتای داخلی مانند نویسنده، تاریخ ایجاد، ویژگی‌های متادیتای خاص فرمت مانند XMP، EXIF، IPTC، بلوک‌های منبع تصویر، ID3، و ویژگی‌های متادیتای سفارشی.

شما می‌توانید دانلود JAR API را انجام دهید یا فقط پیکربندی pom.xml زیر را در برنامه Java مبتنی بر Maven خود اضافه کنید تا کدهای نمونه ذکر شده در زیر را تست کنید.

<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.8</version> 
</dependency>

افزودن بسته متاداده XMP سفارشی به GIF با استفاده از Java

شما می‌توانید یک بسته XMP سفارشی کاملاً با ویژگی‌های تعریف شده توسط کاربر ایجاد و اضافه کنید، با دنبال کردن مراحل ساده زیر:

  • Firstly, load the GIF image using the Metadata class.
  • سپس، Metadata.getRootPackage() را به عنوان استاندارد IXmp فراخوانی کنید تا بسته ریشه را به دست آورید.
  • یک نمونه از کلاس XmpPackage ایجاد کنید تا یک بسته جدید ایجاد شود.
  • حالا، ویژگی‌های مختلفی را برای تعریف بسته تنظیم کنید، مانند Prefix و NamespaceUri.
  • سپس، با استفاده از روش Set()، ویژگی‌های متاداده تعریف شده توسط کاربر را در جفت نام/ مقدار تنظیم کنید.
  • یک نمونه از کلاس XmpPacketWrapper ایجاد کنید که حاوی پکیج XMP سریال شده است.
  • اکنون، متد XmpPacketWrapper.AddPackage() را برای افزودن XmpPackage سفارشی ایجاد شده فراخوانی کنید.
  • از متد IXmp.setXmpPackage() برای تنظیم بسته متاداده XMP استفاده کنید.
  • در نهایت، فایل خروجی را با استفاده از Metadata.save() متد ذخیره کنید.

کد نمونه زیر نشان می‌دهد که چگونه یک بسته متاداده XMP سفارشی به تصویر GIF با استفاده از Java ایجاد و اضافه کنید.

// این مثال کد نشان می‌دهد که چگونه یک بسته متاداده XMP سفارشی ایجاد کرده و به تصویر GIF اضافه کنید.
// یک نمونه از کلاس Metadata ایجاد کنید
Metadata metadata = new Metadata("C:\\Files\\xmp.gif");

// بسته‌های ریشه را دریافت کنید
IXmp root = (IXmp)metadata.getRootPackage();

// Create Xmp Packet Wrapper
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", new Date().toString());
custom.set("gd:Company", XmpArray.from(new String[] { "Aspose", "GroupDocs" }, XmpArrayType.Ordered));

// پکیج سفارشی را به Wrapper پکیج Xmp اضافه کنید
packet.addPackage(custom);

// Update XmpPackage
root.setXmpPackage(packet);

// فایل را ذخیره کن
metadata.save("C:\\Files\\xmp_output.gif");

نمونه کد فوق بسته متاداده XMP را به تصویر ورودی اضافه خواهد کرد. لطفاً خروجی تولید شده توسط ExifTool را در زیر پیدا کنید.

اضافه کردن بسته‌ی متاداده‌ی XMP سفارشی به GIF با استفاده از جاوا

افزودن بسته متادیتای XMP سفارشی به GIF با استفاده از جاوا

خصوصیات متا پی‌دی‌اف بسته XMP سفارشی را با استفاده از Java بخوانید

شما می‌توانید تمام ویژگی‌های تعریف‌شده توسط کاربر در بسته XMP سفارشی را با دنبال کردن مراحل زیر بخوانید:

  • Firstly, load the GIF image using the Metadata class.
  • سپس، Metadata.getRootPackage() را به عنوان استاندارد IXmp فراخوانی کنید تا بسته ریشه را به دست آورید. It provides access to all metadata properties extracted from the file.
  • Call the IXmp.getXmpPackage() method to check if XmpPackage exist.
  • اکنون، با فراخوانی IXmp.getXmpPackage().getPackages() متد، آرایه‌ای از XmpPackage دریافت کنید.
  • بر روی تمام بسته‌ها تکرار کنید و متدهای XmpPackage.getNamespaceUri() و XmpPackage.getPrefix() را فراخوانی کنید تا URI نام‌گاه بسته و پیشوند هر بسته را نمایش دهید.
  • تمام کلیدهای بازگشتی توسط XmpPackage.getKeys() متد را برای چاپ مقدار متاداده مرور کنید.
  • در نهایت، متد XmpPackage.findProperties() را برای هر کلید بسته فراخوانی کنید تا به طور بازگشتی جستجو کرده و ویژگی متاداده‌ای که با کلید بسته مطابقت دارد را بیابید.

نمونه کد زیر نشان می‌دهد که چگونه می‌توان تمام ویژگی‌های تعریف‌شده در بسته سفارشی XMP را با استفاده از زبان Java خواند.

// این مثال کد نحوه خواندن تمام ویژگی‌های تعریف‌شده در بسته XMP سفارشی را نشان می‌دهد.
// یک نمونه از کلاس Metadata را ایجاد کنید
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// پکیج‌های ریشه را دریافت کنید
IXmp root = (IXmp)metadata.getRootPackage();
if (root.getXmpPackage() != null)
{
  // Get Xmp pakages
  XmpPackage[] packages = root.getXmpPackage().getPackages();
  
  // جزئیات بسته را نمایش دهید
 for (XmpPackage pkg : packages )
  {
    System.out.println(pkg.getNamespaceUri());
    System.out.println(pkg.getPrefix());

    for(String keys : pkg.getKeys())
    {
      MetadataProperty property = pkg.findProperties(new WithNameSpecification(keys)).get_Item(0);
      System.out.println(property.getName() + " : " + property.getValue());
    }
  }
}

نمونه کد فوق خروجی زیر را تولید خواهد کرد:

https://groupdocs.com
gd
gd:Copyright: Copyright (C) 2021 GroupDocs. All Rights Reserved.
gd:CreationDate: Sat Oct 16 00:13:15 PKT 2021
gd:Company: <rdf:Seq><rdf:li>Aspose</rdf:li><rdf:li>GroupDocs</rdf:li></rdf:Seq>

حذف بسته XMP سفارشی با استفاده از Java

شما می‌توانید بسته XMP را از تصاویر GIF با دنبال کردن مراحل زیر حذف کنید:

  • Firstly, load the GIF image using the Metadata class.
  • سپس، Metadata.getRootPackage() را به عنوان استاندارد IXmp فراخوانی کنید تا بسته ریشه را به دست آورید.
  • حال، از IXmp.setXmpPackage() استفاده کنید تا XmpPackege را به عنوان null تنظیم کنید.
  • در نهایت، فایل خروجی را با استفاده از روش Metadata.save() ذخیره کنید.

نمونه کد زیر نشان می‌دهد که چگونه می‌توان بسته متاداده XMP را از یک تصویر GIF با استفاده از Java حذف کرد.

// این مثال کد نشان می‌دهد که چگونه بسته متادیتای XMP را از یک تصویر GIF حذف کنیم.
// یک نمونه از کلاس Metadata ایجاد کنید
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// پکیج‌های ریشه را بگیرید
IXmp root = (IXmp)metadata.getRootPackage();

// نصب بسته را به null تنظیم کنید
root.setXmpPackage(null);

// Save image
metadata.save("C:\\Files\\xmp_output_Removed.gif");

نمونه کد بالا بسته متاداده XMP را از تصویر ورودی حذف خواهد کرد. ExifTool متاداده زیر را از تصویر GIF خروجی تولید شده خواند.

حذف بسته XMP سفارشی با استفاده از جاوا.

Remove Custom XMP Package using Java.

مجوز رایگان بگیرید

شما می‌توانید بدون محدودیت‌های ارزیابی، API را با درخواست یک مجوز موقت رایگان امتحان کنید.

نتیجه گیری

در این مقاله، شما یاد گرفته‌اید که چگونه متادادهٔ بستهٔ XMP سفارشی به تصاویر GIF با استفاده از Java اضافه کنید. علاوه بر این، شما دیده‌اید که چگونه خواص بستهٔ XMP را بخوانید و آن‌ها را به‌طور برنامه‌نویسی از یک تصویر GIF حذف کنید. می‌توانید اطلاعات بیشتری دربارهٔ API Java GroupDocs.Metadata با استفاده از documentation بیاموزید. در صورت بروز هر گونه ابهام، لطفاً احساس راحتی کنید و با ما در forum تماس بگیرید.

ببینید همچنین