Trích xuất siêu dữ liệu từ hình ảnh bằng C#

Bạn có thể thêm, chỉnh sửa, xóa hoặc trích xuất các chi tiết hình ảnh như chiều cao, chiều rộng, kiểu dáng, kiểu dáng, v.v. được lưu trữ dưới dạng siêu dữ liệu theo chương trình. Là nhà phát triển C#, bạn có thể dễ dàng trích xuất và thao tác thông tin siêu dữ liệu của hình ảnh theo chương trình trên đám mây. Trong bài viết này, bạn sẽ tìm hiểu cách trích xuất và thao tác siêu dữ liệu của hình ảnh bằng API REST trong C#.

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

Thao tác siêu dữ liệu tài liệu API REST và .NET SDK

Để thao tác siêu dữ liệu của hình ảnh JPEG, tôi sẽ sử dụng API .NET SDK của GroupDocs.Metadata Cloud. Nó cho phép bạn thêm, chỉnh sửa, truy xuất và xóa các thuộc tính siêu dữ liệu khỏi tài liệu và định dạng tệp hình ảnh. Bạn chỉ cần xác định tiêu chí tìm kiếm và API Cloud REST siêu dữ liệu sẽ xử lý các hoạt động siêu dữ liệu được chỉ định trong các định dạng tệp được hỗ trợ. Nó cũng cung cấp SDK Java dưới dạng các thành viên gia đình thao tác siêu dữ liệu tài liệu cho Cloud API.

Bạn có thể cài đặt GroupDocs.Metadata cho dự án Visual Studio của mình từ Trình quản lý gói NuGet hoặc sử dụng lệnh sau trong bảng điều khiển Trình quản lý gói:

Install-Package GroupDocs.Metadata-Cloud

Vui lòng lấy ID khách hàng và Bí mật khách hàng của bạn từ bảng điều khiển trước khi bạn bắt đầu làm theo các bước và ví dụ về mã có sẵn. Khi bạn có ID khách hàng và Bí mật, hãy thêm mã như hình bên dưới:

string clientID = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
string clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
string myStorage = "";

Configuration configuration = new Configuration(clientID, clientSecret);
configuration.ApiBaseUrl = "https://api.groupdocs.cloud";

Thêm siêu dữ liệu vào hình ảnh bằng API REST trong C#

Bạn có thể thêm siêu dữ liệu vào hình ảnh bằng cách thực hiện theo các bước đơn giản dưới đây:

Tải lên hình ảnh

Đầu tiên, tải tệp JPEG lên Đám mây bằng cách sử dụng mẫu mã được cung cấp bên dưới:

// khởi tạo api
FileApi fileApi = new FileApi(configuration);
string path = @"C:\Files";

var file = Directory.GetFiles(path, "input.jpg", SearchOption.AllDirectories).FirstOrDefault();
if (file.Length != 0)
{
    var relativeFilePath = file.Replace(path, string.Empty).Trim(Path.DirectorySeparatorChar);

    var fileStream = File.Open(file, FileMode.Open);

    fileApi.UploadFile(new UploadFileRequest(relativeFilePath, fileStream, myStorage));
    fileStream.Close();
}

Do đó, tệp hình ảnh JPEG đã tải lên sẽ có trong phần tệp trên trang tổng quan của bạn trên đám mây.

Thêm siêu dữ liệu vào hình ảnh bằng C#

Bạn có thể thêm siêu dữ liệu vào hình ảnh JPEG theo chương trình bằng cách làm theo các bước dưới đây.

  • Tạo một phiên bản của MetadataApi
  • Đặt đường dẫn tệp ảnh JPEG trong mô hình FileInfo
  • Xác định AddOptions
  • Đặt Giá trị và Tiêu chí tìm kiếm cho thuộc tính bằng mô hình AddProperty
  • Tạo AddRequest với AddOptions
  • Nhận kết quả bằng cách gọi phương thức MetadataApi.Add()

Mẫu mã sau đây cho biết cách thêm siêu dữ liệu vào hình ảnh JPEG bằng API REST.

// khởi tạo api
var apiInstance = new MetadataApi(configuration);

// đường dẫn hình ảnh đầu vào
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// xác định tùy chọn thêm siêu dữ liệu
var options = new AddOptions
{
    FileInfo = fileInfo,
    Properties = new List<AddProperty>
    {
        new AddProperty
        {
            Value = "All rights reserved.",
            Type = "String",
            SearchCriteria = new SearchCriteria
            {
                TagOptions = new TagOptions
                {
                    PossibleName = "Copyright"
                }
            },
        }
    }
};

// thêm yêu cầu
var request = new AddRequest(options);
var response = apiInstance.Add(request);
Thêm siêu dữ liệu từ hình ảnh bằng API REST trong C#

Thêm siêu dữ liệu từ hình ảnh bằng API REST trong C#

Tải xuống hình ảnh

Các mẫu mã trên sẽ lưu tệp JPEG đã cập nhật trên đám mây và có thể được tải xuống bằng mẫu mã sau:

// khởi tạo api
var fileApi = new FileApi(configuration);

// đường dẫn mặc định
var file = "metadata\\add_metadata\\input_jpg\\input.jpg";

// yêu cầu tải xuống
var downloadRequest = new DownloadFileRequest(file, myStorage);

Stream downloadResponse = fileApi.DownloadFile(downloadRequest);
using (var fileStream = File.Create("C:\\Files\\input.jpg"))
{
    downloadResponse.Seek(0, SeekOrigin.Begin);
    downloadResponse.CopyTo(fileStream);
}

Cập nhật siêu dữ liệu của hình ảnh bằng C#

Bạn có thể cập nhật siêu dữ liệu của hình ảnh JPEG theo chương trình bằng cách thực hiện theo các bước dưới đây.

  • Tạo một phiên bản của MetadataApi
  • Đặt đường dẫn tệp ảnh JPEG trong mô hình FileInfo
  • Xác định SetOptions
  • Đặt NewValue và SearchCriteria cho thuộc tính bằng mô hình SetProperty
  • Tạo SetRequest với SetOptions
  • Nhận kết quả bằng cách gọi phương thức MetadataApi.Set()

Mẫu mã sau đây cho biết cách đặt siêu dữ liệu của hình ảnh JPEG bằng API REST. Vui lòng làm theo các bước được đề cập trước đó để tải lên và tải xuống tệp.

// khởi tạo api
var apiInstance = new MetadataApi(configuration);

// đường dẫn hình ảnh đầu vào
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// xác định tùy chọn bộ siêu dữ liệu
var options = new SetOptions
{
    FileInfo = fileInfo,
    Properties = new List<SetProperty>
    {
        new SetProperty
        {
            NewValue = "Copyright 2021",
            SearchCriteria = new SearchCriteria
            {
                TagOptions = new TagOptions
                {
                    PossibleName = "Copyright"
                }
            },
            Type = "String"
        }
    }
};

// yêu cầu cập nhật
var request = new SetRequest(options);
var response = apiInstance.Set(request);
Cập nhật siêu dữ liệu từ hình ảnh bằng API REST trong C#

Cập nhật siêu dữ liệu từ hình ảnh bằng API REST trong C#

Xóa siêu dữ liệu khỏi hình ảnh bằng C#

Bạn có thể xóa siêu dữ liệu khỏi hình ảnh JPEG theo chương trình bằng cách thực hiện theo các bước dưới đây.

  • Tạo một phiên bản của MetadataApi
  • Đặt đường dẫn tệp ảnh JPEG trong mô hình FileInfo
  • Xác định RemoveOptions
  • Đặt tiêu chí tìm kiếm
  • Tạo RemoveRequest với RemoveOptions
  • Nhận kết quả bằng cách gọi phương thức MetadataApi.Remove()

Mẫu mã sau đây cho biết cách xóa siêu dữ liệu khỏi hình ảnh JPEG bằng API REST. Vui lòng làm theo các bước được đề cập trước đó để tải lên và tải xuống tệp.

// khởi tạo api
var apiInstance = new MetadataApi(configuration);

// đường dẫn hình ảnh đầu vào
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// xác định tùy chọn loại bỏ siêu dữ liệu
var options = new RemoveOptions
{
    FileInfo = fileInfo,
    SearchCriteria = new SearchCriteria
    {
        TagOptions = new TagOptions
        {
            PossibleName = "Copyright"
        }
    }
};

// Loại bỏ yêu cầu
var request = new RemoveRequest(options);
var response = apiInstance.Remove(request);
Xóa siêu dữ liệu khỏi hình ảnh bằng API REST trong C#

Xóa siêu dữ liệu khỏi hình ảnh bằng API REST trong C#

Trích xuất siêu dữ liệu từ hình ảnh bằng C#

Bạn có thể trích xuất siêu dữ liệu từ hình ảnh JPEG theo chương trình bằng cách thực hiện theo các bước dưới đây.

  • Tạo một phiên bản của MetadataApi
  • Đặt đường dẫn tệp ảnh JPEG trong mô hình FileInfo
  • Xác định ExtractOptions
  • Tạo ExtractRequest với ExtractOptions
  • Nhận kết quả bằng cách gọi phương thức MetadataApi.Extract()

Mẫu mã sau đây cho biết cách trích xuất siêu dữ liệu từ hình ảnh JPEG bằng API REST. Vui lòng làm theo các bước được đề cập trước đó để tải tệp lên.

// khởi tạo api
var apiInstance = new MetadataApi(configuration);

// tập tin nguồn
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// giải nén optioins
var options = new ExtractOptions
{
    FileInfo = fileInfo
};

// trích xuất yêu cầu
var request = new ExtractRequest(options);
var response = apiInstance.Extract(request);

// siêu dữ liệu được trích xuất
if (response.MetadataTree.InnerPackages != null)
{
    var innerPackages = response.MetadataTree.InnerPackages;
   for (int i = 0; i < innerPackages.Count; i++)
    {
        Console.WriteLine($"\nPackage: {innerPackages[i].PackageName}");
        var packageProperties = innerPackages[i].PackageProperties;
       for (int j = 0; j < packageProperties.Count; j++)
        {
            Console.WriteLine(packageProperties[j].Name + " : " + packageProperties[j].Value);
        }
    }
}
Siêu dữ liệu hình ảnh

Siêu dữ liệu hình ảnh

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

Package: FileFormat
FileFormat : 9
MimeType : image/jpeg
ByteOrder : 1
Width : 480
Height : 360

Package: Xmp
http://ns.microsoft.com/photo/1.0/ :

Package: Exif
Exif.GpsIfd :
Exif.ExifIfd :
Make : Canon
Model : Canon PowerShot S40
Orientation : System.Int32[]
XResolution : System.Double[]
YResolution : System.Double[]
ResolutionUnit : System.Int32[]
DateTime : 2003:12:14 12:01:44
YCbCrPositioning : System.Int32[]
ExifIfd : System.Int64[]
Exif.Thumbnail : System.Byte[] 

Thử trực tuyến

Vui lòng thử công cụ trực tuyến miễn phí thao tác Siêu dữ liệu JPEG sau đây, được phát triển bằng cách sử dụng API ở trên. https://products.groupdocs.app/metadata/jpeg

Phần kết luận

Trong bài viết này, bạn đã học cách thêm, chỉnh sửa, xóa và trích xuất Siêu dữ liệu từ hình ảnh trên đám mây. Bài viết này cũng giải thích cách lập trình tải tệp hình ảnh JPEG lên đám mây và tải xuống từ đám mây. Bạn có thể tìm hiểu thêm về GroupDocs.Metadata Manipulation Cloud API bằng cách sử dụng tài liệu. Chúng tôi cũng cung cấp phần Tham khảo API cho phép bạn hình dung và tương tác trực tiếp với các API của chúng tôi thông qua trình duyệt. 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