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 gói siêu dữ liệu XMP tùy chỉnh vào GIF bằng Java
- Đọc thuộc tính gói siêu dữ liệu XMP tùy chỉnh bằng Java
- Xóa gói siêu dữ liệu XMP tùy chỉnh bằng Java
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ố và 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.
Đọ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:
- Đầ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. It provides access to all metadata properties extracted from the file.
- Gọi phương thức IXmp.getXmpPackage() để kiểm tra xem XmpPackage có tồn tại hay không.
- Bây giờ, hãy lấy mảng XmpPackage bằng cách gọi phương thức IXmp.getXmpPackage().getPackages()
- Lặp lại tất cả các gói và gọi các phương thức XmpPackage.getNamespaceUri() và XmpPackage.getPrefix() để hiển thị URI không gian tên gói và tiền tố cho mỗi gói
- Lặp lại tất cả các khóa được trả về bằng phương thức XmpPackage.getKeys() để in giá trị siêu dữ liệu
- Cuối cùng, hãy gọi phương thức XmpPackage.findProperties() cho mỗi Khóa gói để tìm kiếm đệ quy và tìm thuộc tính siêu dữ liệu khớp với khóa gói.
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:
- Đầ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.
- Bây giờ, hãy sử dụng IXmp.setXmpPackage() để đặt XmpPackege thành null
- 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 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.
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.