Thêm hoặc xóa siêu dữ liệu XMP tùy chỉnh khỏi GIF bằng Java

Mô hình dữ liệu Nền tảng siêu dữ liệu mở rộng (XMP) có thể được sử dụng để lưu trữ bất kỳ tập hợp thuộc tính siêu dữ liệu nào dưới dạng cặp tên/giá trị được mã hóa dưới dạng văn bản có định dạng XML. Là nhà phát triển Java, bạn có thể dễ dàng thêm gói siêu dữ liệu XMP tùy chỉnh vào hình ảnh của mình theo chương trình. Trong bài viết này, bạn sẽ tìm hiểu cách thêm hoặc xóa siêu dữ liệu XMP tùy chỉnh khỏi GIF bằng Java.

Các chủ đề sau được thảo luận/đề cập trong bài viết này:

API Java để thêm hoặc xóa siêu dữ liệu XMP tùy chỉnh

Để thêm hoặc xóa gói siêu dữ liệu XMP tùy chỉnh khỏi hình ảnh GIF, chúng tôi sẽ sử dụng API GroupDocs.Metadata for Java. Nó cho phép bạn thêm, chỉnh sửa, truy xuất và xóa thuộc tính siêu dữ liệu khỏi các định dạng tệp hình ảnh và tài liệu được hỗ trợ. API hoạt động với các tiêu chuẩn siêu dữ liệu đáng chú ý nhất, chẳng hạn như thuộc tính siêu dữ liệu tích hợp, ví dụ: tác giả, ngày tạo, thuộc tính siêu dữ liệu theo định dạng cụ thể, chẳng hạn như XMP, EXIF, IPTC, Khối tài nguyên hình ảnh, ID3 và thuộc tính siêu dữ liệu tùy chỉnh.

Bạn có thể tải xuống JAR của API hoặc chỉ cần thêm cấu hình pom.xml sau vào ứng dụng Java dựa trên Maven của bạn để thử các ví dụ mã được đề cập bên dưới.

<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>

Thêm gói siêu dữ liệu XMP tùy chỉnh vào GIF bằng Java

Bạn có thể tạo và thêm gói XMP tùy chỉnh hoàn toàn với các thuộc tính do người dùng xác định bằng cách thực hiện theo các bước đơn giản dưới đây:

  • Đầu tiên, tải hình ảnh GIF bằng lớp Siêu dữ liệu.
  • Sau đó, gọi tiêu chuẩn Metadata.getRootPackage() làm IXmp để lấy gói gốc.
  • Tạo một thể hiện của lớp XmpPackage để tạo gói mới.
  • Bây giờ, hãy đặt các thuộc tính khác nhau để xác định gói, chẳng hạn như Tiền tốNamespaceUri.
  • Sau đó, gọi phương thức Set() để đặt thuộc tính siêu dữ liệu do người dùng xác định trong cặp Tên/Giá trị.
  • Tạo một phiên bản của lớp XmpPacketWrapper chứa gói XMP được tuần tự hóa.
  • Bây giờ, hãy gọi phương thức XmpPacketWrapper.AddPackage() để thêm XmpPackage tùy chỉnh đã tạo.
  • Sử dụng phương thức IXmp.setXmpPackage() để đặt gói siêu dữ liệu XMP.
  • Cuối cùng, lưu tệp đầu ra bằng phương thức Metadata.save().

Mẫu mã sau đây cho biết cách tạo và thêm gói siêu dữ liệu XMP tùy chỉnh vào hình ảnh GIF bằng Java.

// Ví dụ về mã này trình bày cách tạo và thêm gói siêu dữ liệu XMP tùy chỉnh vào hình ảnh GIF.
// Tạo một thể hiện của lớp Siêu dữ liệu
Metadata metadata = new Metadata("C:\\Files\\xmp.gif");

// Nhận gói gốc
IXmp root = (IXmp)metadata.getRootPackage();

// Tạo trình bao bọc gói Xmp
XmpPacketWrapper packet = new XmpPacketWrapper();

// Xác định gói tùy chỉnh
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));

// Thêm gói tùy chỉnh vào Trình gói gói Xmp
packet.addPackage(custom);

// Cập nhật gói Xmp
root.setXmpPackage(packet);

// Lưu các tập tin
metadata.save("C:\\Files\\xmp_output.gif");

Mẫu mã ở trên sẽ thêm gói siêu dữ liệu XMP vào hình ảnh đầu vào. Vui lòng tìm bên dưới kết quả được tạo bởi ExifTool.

Thêm gói siêu dữ liệu XMP tùy chỉnh vào GIF bằng Java

Thêm gói siêu dữ liệu XMP tùy chỉnh vào GIF bằng Java

Đọc thuộc tính siêu dữ liệu gói XMP tùy chỉnh bằng Java

Bạn có thể đọc tất cả các thuộc tính do người dùng xác định của gói XMP tùy chỉnh bằng cách thực hiện theo các bước dưới đây:

Mẫu mã sau đây cho biết cách đọc tất cả các thuộc tính được xác định trong gói XMP tùy chỉnh bằng Java.

// Ví dụ mã này trình bày cách đọc tất cả các thuộc tính được xác định trong gói XMP tùy chỉnh
// Tạo một thể hiện của lớp Siêu dữ liệu
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// Nhận gói gốc
IXmp root = (IXmp)metadata.getRootPackage();
if (root.getXmpPackage() != null)
{
  // Nhận gói Xmp
  XmpPackage[] packages = root.getXmpPackage().getPackages();
  
  // Hiển thị chi tiết gói
 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());
    }
  }
}

Mẫu mã trên sẽ tạo ra kết quả đầu ra sau:

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>

Xóa gói XMP tùy chỉnh bằng Java

Bạn có thể xóa gói XMP khỏi ảnh GIF bằng cách thực hiện theo các bước dưới đây:

Mẫu mã sau đây cho biết cách xóa gói siêu dữ liệu XMP khỏi ảnh GIF bằng Java.

// Ví dụ về mã này trình bày cách xóa gói siêu dữ liệu XMP khỏi ảnh GIF.
// Tạo một thể hiện của lớp Siêu dữ liệu
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// Nhận gói gốc
IXmp root = (IXmp)metadata.getRootPackage();

// Đặt gói thành null
root.setXmpPackage(null);

// Lưu hình ảnh
metadata.save("C:\\Files\\xmp_output_Removed.gif");

Mẫu mã ở trên sẽ xóa gói siêu dữ liệu XMP khỏi hình ảnh đầu vào. ExifTool đọc siêu dữ liệu sau từ ảnh GIF đầu ra được tạo.

Xóa gói XMP tùy chỉnh bằng Java.

Xóa gói XMP tùy chỉnh bằng Java.

Nhận giấy phép miễn phí

Bạn có thể dùng thử API mà không bị giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, bạn đã tìm hiểu cách thêm siêu dữ liệu gói XMP tùy chỉnh vào ảnh GIF bằng Java. Hơn nữa, bạn đã biết cách đọc thuộc tính gói XMP và xóa chúng khỏi ảnh GIF theo chương trình. Bạn có thể tìm hiểu thêm về GroupDocs.Metadata cho API Java bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm