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

Siêu dữ liệu Nền tảng siêu dữ liệu mở rộng (XMP) được mã hóa dưới dạng văn bản có định dạng XML. Mô hình dữ liệu XMP đã xác định 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ị. Bạn có thể 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 C#.

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

API C# để thêm hoặc xóa siêu dữ liệu XMP

Tôi sẽ sử dụng API GroupDocs.Metadata for .NET để thêm hoặc xóa gói siêu dữ liệu XMP tùy chỉnh. 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 tài liệu và định dạng tệp hình ảnh. API hoạt động với các tiêu chuẩn siêu dữ liệu đáng chú ý nhất 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 tích hợp sẵn. Nó có thể được sử dụng để phát triển ứng dụng trong bất kỳ môi trường phát triển nào hướng tới nền tảng .NET.

Bạn có thể tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

Install-Package GroupDocs.Metadata

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

Bạn có thể dễ dàng tạo và thêm gói XMP tùy chỉnh hoàn toàn chứa 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 được đề cập bên dưới:

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 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");
}

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

Thêm gói siêu dữ liệu XMP vào GIF bằng C#

Thêm gói siêu dữ liệu XMP vào GIF bằng C#

Giao diện IXMP hiển thị thuộc tính XmpPackage{.brokenlink} để nhận hoặc đặt gói siêu dữ liệu XMP.

Lớp Siêu dữ liệu cung cấp phương thức GetRootPackage để lấy gói gốc cung cấp quyền truy cập vào tất cả các thuộc tính siêu dữ liệu được trích xuất từ tệp.

Lớp XmpPackage cung cấp nhiều thuộc tính khác nhau để xác định gói, chẳng hạn như Tiền tố, NamespaceUriKhóa. Lớp này cũng cung cấp các phương thức Set để đặt tên/giá trị cho các thuộc tính siêu dữ liệu do người dùng xác định.

Lớp XmpPacketWrapper chứa gói XMP được tuần tự hóa. Phương thức AddPackage của lớp này cho phép thêm gói tùy chỉnh đã xác định.

Bạn có thể tìm thêm thông tin chi tiết về “Làm việc với siêu dữ liệu XMP" trong tài liệu.

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

Bạn có thể dễ dàng đọc tất cả các thuộc tính do người dùng xác định trong gói XMP tùy chỉnh bằng cách thực hiện theo các bước đơn giản được đề cập bên dướ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 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);
      }
    }
  }
}

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: 04/05/2021 2:26:17 am
gd:Company: <rdf:Seq><rdf:li>Aspose</rdf:li><rdf:li>GroupDocs</rdf:li></rdf:Seq>

Phương thức FindProperties của lớp XmpPackage tìm kiếm đệ quy và tìm thấy các thuộc tính siêu dữ liệu thỏa mãn vị từ đã chỉ định.

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

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 đơn giản được đề cập bên dưới:

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 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");
}

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 siêu dữ liệu XMP khỏi GIF bằng C#

Xóa Gói siêu dữ liệu XMP khỏi GIF bằng C#

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 hoặc xóa siêu dữ liệu gói XMP tùy chỉnh khỏi ảnh GIF bằng C#. Bạn cũng đã học cách đọc thuộc tính gói XMP bằng C#. Hơn nữa, bạn có thể tìm hiểu về GroupDocs.Metadata cho .NET API 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