เพิ่มหรือลบข้อมูลเมตา XMP ที่กำหนดเองจาก GIF โดยใช้ C#

ข้อมูลเมตา Extensible Metadata Platform (XMP) จะถูกเข้ารหัสเป็นข้อความที่จัดรูปแบบ XML โมเดลข้อมูล XMP ที่กำหนดสามารถใช้เพื่อจัดเก็บชุดคุณสมบัติเมทาดาทาใดๆ ในรูปแบบของคู่ชื่อ/ค่า คุณสามารถเพิ่มแพ็คเกจข้อมูลเมตา XMP แบบกำหนดเองให้กับรูปภาพของคุณโดยทางโปรแกรม ในบทความนี้ คุณจะได้เรียนรู้วิธีเพิ่มหรือลบข้อมูลเมตา XMP ที่กำหนดเองจาก GIF โดยใช้ C#

หัวข้อต่อไปนี้จะกล่าวถึง/ครอบคลุมในบทความนี้:

C# API สำหรับการเพิ่มหรือลบข้อมูลเมตา XMP

ฉันจะใช้ GroupDocs.Metadata for .NET API สำหรับการเพิ่มหรือลบแพ็คเกจข้อมูลเมตา XMP ที่กำหนดเอง ช่วยให้คุณสามารถเพิ่ม แก้ไข ดึงข้อมูล และลบคุณสมบัติเมทาดาทาออกจากเอกสารและรูปแบบไฟล์รูปภาพได้ API ทำงานร่วมกับมาตรฐานเมตาดาต้าที่โดดเด่นที่สุด เช่น คุณสมบัติในตัว, XMP, EXIF, IPTC, บล็อกทรัพยากรรูปภาพ, ID3 และคุณสมบัติเมทาดาทาที่กำหนดเอง สามารถใช้ในการพัฒนาแอปพลิเคชันในสภาพแวดล้อมการพัฒนาใดๆ ที่กำหนดเป้าหมายแพลตฟอร์ม .NET

คุณสามารถ ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet

Install-Package GroupDocs.Metadata

เพิ่มแพ็คเกจข้อมูลเมตา XMP ที่กำหนดเองลงใน GIF โดยใช้ C#

คุณสามารถสร้างและเพิ่มแพ็คเกจ XMP แบบกำหนดเองเต็มรูปแบบที่มีคุณสมบัติที่ผู้ใช้กำหนดได้อย่างง่ายดายโดยทำตามขั้นตอนง่ายๆ ด้านล่างนี้:

  • สร้างอินสแตนซ์ของคลาส Metadata
  • ระบุเส้นทางของภาพ GIF
  • รับ RootPackage 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 มีคุณสมบัติต่างๆ เพื่อกำหนดแพ็คเกจ เช่น Prefix, NamespaceUri และ Keys คลาสนี้ยังมีวิธี Set เพื่อตั้งชื่อ/ค่าสำหรับคุณสมบัติเมทาดาทาที่ผู้ใช้กำหนด

คลาส XmpPacketWrapper มีแพ็คเกจ XMP ที่ทำให้เป็นอนุกรม วิธีการ AddPackage ของคลาสนี้อนุญาตให้เพิ่มแพ็คเกจแบบกำหนดเองที่กำหนดไว้

ดูรายละเอียดเพิ่มเติมเกี่ยวกับ “การทำงานกับข้อมูลเมตา XMP” ได้ในเอกสารประกอบ

อ่านคุณสมบัติเมตาดาต้าแพ็คเกจ XMP แบบกำหนดเองโดยใช้ C#

คุณสามารถอ่านคุณสมบัติที่ผู้ใช้กำหนดของแพ็คเกจ XMP แบบกำหนดเองทั้งหมดได้อย่างง่ายดายโดยทำตามขั้นตอนง่าย ๆ ที่ระบุไว้ด้านล่าง:

  • สร้างอินสแตนซ์ของคลาส Metadata
  • ระบุเส้นทางของภาพ GIF
  • รับ RootPackage as IXmp standard
  • รับแพ็คเกจทั้งหมดทีละแพ็คเกจจาก IXmp.XmpPackage.Packages
  • รับ NamespaceUri และคำนำหน้าสำหรับแต่ละแพ็คเกจ
  • เรียก 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 ได้โดยทำตามขั้นตอนง่าย ๆ ที่ระบุไว้ด้านล่าง:

  • สร้างอินสแตนซ์ของคลาส Metadata
  • ระบุเส้นทางของภาพ GIF
  • รับ RootPackage as IXmp standard
  • ตั้งค่า IXMp.XmpPackage เป็น null
  • บันทึกไฟล์เอาต์พุตโดยใช้เมธอด Metadata.Save

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีลบแพ็คเกจข้อมูลเมตา 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 ออกจาก GIF โดยใช้ C#

ลบแพ็คเกจข้อมูลเมตา XMP ออกจาก GIF โดยใช้ C#

รับใบอนุญาตฟรี

คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีเพิ่มหรือลบข้อมูลเมตาแพ็คเกจ XMP ที่กำหนดเองจากภาพ GIF โดยใช้ C# คุณยังได้เรียนรู้วิธีการอ่านคุณสมบัติแพ็คเกจ XMP โดยใช้ C# นอกจากนี้ คุณยังสามารถเรียนรู้เกี่ยวกับ GroupDocs.Metadata สำหรับ .NET API ได้โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรั่ม

ดูสิ่งนี้ด้วย