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

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

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

Java API เพื่อเพิ่มหรือลบข้อมูลเมตา XMP ที่กำหนดเอง

สำหรับการเพิ่มหรือลบแพ็คเกจข้อมูลเมตา XMP ที่กำหนดเองจากรูปภาพ GIF เราจะใช้ GroupDocs.Metadata สำหรับ 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 แบบกำหนดเองเต็มรูปแบบพร้อมคุณสมบัติที่ผู้ใช้กำหนดได้โดยทำตามขั้นตอนง่ายๆ ที่ระบุด้านล่าง:

  • ขั้นแรก โหลดภาพ GIF โดยใช้คลาส Metadata
  • จากนั้น เรียก 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();

// สร้าง 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));

// เพิ่มแพ็คเกจแบบกำหนดเองลงใน Xmp Packet Wrapper
packet.addPackage(custom);

// อัพเดต XmpPackage
root.setXmpPackage(packet);

// บันทึกไฟล์
metadata.save("C:\\Files\\xmp_output.gif");

ตัวอย่างโค้ดด้านบนจะต้องเพิ่มแพ็คเกจข้อมูลเมตา XMP ให้กับรูปภาพอินพุต โปรดดูผลลัพธ์ที่สร้างโดย ExifTool ด้านล่าง

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

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

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

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

  • ขั้นแรก โหลดภาพ GIF โดยใช้คลาส Metadata
  • จากนั้น เรียก Metadata.getRootPackage() เป็นมาตรฐาน IXmp เพื่อรับแพ็กเกจรูท It provides access to all metadata properties extracted from the file.
  • เรียกใช้เมธอด IXmp.getXmpPackage() เพื่อตรวจสอบว่า XmpPackage มีอยู่หรือไม่
  • ตอนนี้รับอาร์เรย์ของ XmpPackage โดยการเรียกเมธอด IXmp.getXmpPackage().getPackages()
  • วนซ้ำแพ็กเกจทั้งหมดและเรียกใช้เมธอด XmpPackage.getNamespaceUri() และ XmpPackage.getPrefix() เพื่อแสดงแพ็กเกจ Namespace 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)
{
  // รับแพ็คเกจ Xmp
  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 ได้โดยทำตามขั้นตอนด้านล่าง:

  • ขั้นแรก โหลดภาพ GIF โดยใช้คลาส Metadata
  • จากนั้น เรียก 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();

// ตั้งค่าแพ็คเกจเป็นโมฆะ
root.setXmpPackage(null);

// บันทึกภาพ
metadata.save("C:\\Files\\xmp_output_Removed.gif");

ตัวอย่างโค้ดด้านบนจะต้องลบแพ็คเกจข้อมูลเมตา XMP ออกจากรูปภาพอินพุต ExifTool อ่านข้อมูลเมตาต่อไปนี้จากอิมเมจ GIF เอาต์พุตที่สร้างขึ้น

ลบแพ็คเกจ XMP แบบกำหนดเองโดยใช้ Java

ลบแพ็คเกจ XMP แบบกำหนดเองโดยใช้ Java

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

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

บทสรุป

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

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