Вилучення метаданих із зображень за допомогою C#

Ви можете додавати, редагувати, видаляти або вилучати деталі зображення, такі як висота, ширина, марка, модель тощо, які зберігаються у формі метаданих програмним шляхом. Як розробник на C#, ви можете легко видобувати метадані зображень і керувати ними програмними засобами в хмарі. У цій статті ви дізнаєтесь, як видобувати та маніпулювати метаданими зображень за допомогою REST API у C#.

У цій статті обговорюються/розкриваються такі теми:

REST API маніпуляції метаданими документів і .NET SDK

Для роботи з метаданими зображень JPEG я буду використовувати API .NET SDK GroupDocs.Metadata Cloud. Він дозволяє додавати, редагувати, отримувати та видаляти властивості метаданих із документів і форматів файлів зображень. Вам просто потрібно визначити критерії пошуку, і API метаданих Cloud REST подбає про вказані операції метаданих у межах підтримуваних форматів файлів. Він також надає Java SDK як члени родини обробки метаданих документів для Cloud API.

Ви можете встановити GroupDocs.Metadata у свій проект Visual Studio з диспетчера пакетів NuGet або за допомогою такої команди в консолі диспетчера пакетів:

Install-Package GroupDocs.Metadata-Cloud

Будь ласка, отримайте свій ідентифікатор клієнта та секрет клієнта з інформаційної панелі, перш ніж почати виконувати кроки та доступні приклади коду. Отримавши ідентифікатор клієнта та секрет, додайте код, як показано нижче:

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

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

Додайте метадані до зображень за допомогою REST API у C#

Ви можете додати метадані до зображень, виконавши прості дії, наведені нижче:

Завантажте зображення

По-перше, завантажте файл JPEG у хмару, використовуючи наведений нижче зразок коду:

// ініціалізація 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();
}

У результаті завантажений файл зображення JPEG буде доступним у розділі файлів вашої інформаційної панелі в хмарі.

Додайте метадані до зображення за допомогою C#

Ви можете програмно додати метадані до зображення JPEG, виконавши наведені нижче дії.

  • Створіть екземпляр MetadataApi
  • Встановіть шлях до файлу зображення JPEG у моделі FileInfo
  • Визначте AddOptions
  • Встановіть значення та критерії пошуку для властивості за допомогою моделі AddProperty
  • Створіть AddRequest за допомогою AddOptions
  • Отримайте результати, викликавши метод MetadataApi.Add().

У наведеному нижче прикладі коду показано, як додати метадані до зображення JPEG за допомогою REST API.

// ініціалізація API
var apiInstance = new MetadataApi(configuration);

// вхідний шлях зображення
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// визначте параметри додавання метаданих
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"
                }
            },
        }
    }
};

// додати запит
var request = new AddRequest(options);
var response = apiInstance.Add(request);
Додайте метадані із зображень за допомогою REST API у C#

Додайте метадані із зображень за допомогою REST API у C#

Завантажте зображення

Наведені вище зразки коду збережуть оновлений файл JPEG у хмарі, і його можна буде завантажити за допомогою такого зразка коду:

// ініціалізація API
var fileApi = new FileApi(configuration);

// шлях за замовчуванням
var file = "metadata\\add_metadata\\input_jpg\\input.jpg";

// запит на завантаження
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#

Ви можете програмно оновити метадані зображення JPEG, виконавши наведені нижче дії.

  • Створіть екземпляр MetadataApi
  • Встановіть шлях до файлу зображення JPEG у моделі FileInfo
  • Визначте SetOptions
  • Установіть NewValue і SearchCriteria для властивості за допомогою моделі SetProperty
  • Створіть SetRequest за допомогою SetOptions
  • Отримайте результати, викликавши метод MetadataApi.Set().

У наведеному нижче прикладі коду показано, як установити метадані зображення JPEG за допомогою REST API. Будь ласка, виконайте кроки, згадані раніше, щоб завантажити та завантажити файл.

// ініціалізація API
var apiInstance = new MetadataApi(configuration);

// вхідний шлях зображення
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// визначити параметри набору метаданих
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"
        }
    }
};

// запит на оновлення
var request = new SetRequest(options);
var response = apiInstance.Set(request);
Оновлення метаданих із зображень за допомогою REST API у C#

Оновлення метаданих із зображень за допомогою REST API у C#

Видалення метаданих із зображення за допомогою C#

Ви можете програмно видалити метадані із зображення JPEG, виконавши наведені нижче дії.

  • Створіть екземпляр MetadataApi
  • Встановіть шлях до файлу зображення JPEG у моделі FileInfo
  • Визначте RemoveOptions
  • Встановіть критерії пошуку
  • Створіть RemoveRequest за допомогою RemoveOptions
  • Отримайте результати, викликавши метод MetadataApi.Remove().

У наступному прикладі коду показано, як видалити метадані із зображення JPEG за допомогою REST API. Будь ласка, виконайте кроки, згадані раніше, щоб завантажити та завантажити файл.

// ініціалізація API
var apiInstance = new MetadataApi(configuration);

// вхідний шлях зображення
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// визначте параметри видалення метаданих
var options = new RemoveOptions
{
    FileInfo = fileInfo,
    SearchCriteria = new SearchCriteria
    {
        TagOptions = new TagOptions
        {
            PossibleName = "Copyright"
        }
    }
};

// видалити запит
var request = new RemoveRequest(options);
var response = apiInstance.Remove(request);
Видалення метаданих із зображень за допомогою REST API у C#

Видалення метаданих із зображень за допомогою REST API у C#

Вилучення метаданих із зображення за допомогою C#

Ви можете отримати метадані із зображення JPEG програмним шляхом, виконавши наведені нижче дії.

  • Створіть екземпляр MetadataApi
  • Встановіть шлях до файлу зображення JPEG у моделі FileInfo
  • Визначте ExtractOptions
  • Створіть ExtractRequest за допомогою ExtractOptions
  • Отримайте результати, викликавши метод MetadataApi.Extract().

У наведеному нижче прикладі коду показано, як отримати метадані із зображення JPEG за допомогою REST API. Щоб завантажити файл, виконайте наведені вище дії.

// ініціалізація API
var apiInstance = new MetadataApi(configuration);

// вихідний файл
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// витягти опції
var options = new ExtractOptions
{
    FileInfo = fileInfo
};

// запит на вилучення
var request = new ExtractRequest(options);
var response = apiInstance.Extract(request);

// витягнуті метадані
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);
        }
    }
}
Метадані зображення

Метадані зображення

Наведений вище зразок коду дасть такий результат:

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

Спробуйте онлайн

Будь ласка, спробуйте наведений нижче безкоштовний онлайн-інструмент для обробки метаданих JPEG, розроблений за допомогою вищезазначеного API. https://products.groupdocs.app/metadata/jpeg

Висновок

У цій статті ви дізналися, як додавати, редагувати, видаляти та видобувати метадані із зображень у хмарі. У цій статті також пояснюється, як програмно завантажити файл зображення JPEG у хмару та завантажити його з хмари. Ви можете дізнатися більше про GroupDocs.Metadata Manipulation Cloud API за допомогою документації. Ми також надаємо розділ API Reference, який дозволяє візуалізувати наші API та взаємодіяти з ними безпосередньо через браузер. У разі будь-яких неясностей зв’яжіться з нами на форумі.

Дивись також