Вы можете добавлять, редактировать, удалять или извлекать детали изображения, такие как высота, ширина, марка, модель и т. д., хранящиеся в виде метаданных программно. Как разработчик C#, вы можете легко программно извлекать метаданные изображений и управлять ими в облаке. В этой статье вы узнаете, как извлекать метаданные изображений и управлять ими с помощью REST API на C#.
В этой статье обсуждаются/рассматриваются следующие темы:
- REST API и .NET SDK для управления метаданными документа
- Добавить метаданные к изображениям с помощью REST API
- Обновление метаданных изображения с помощью REST API
- Удалить метаданные из изображений с помощью REST API
- Извлечение метаданных из изображений с помощью REST API
REST API и .NET SDK для управления метаданными документа
Для управления метаданными изображений JPEG я буду использовать .NET SDK of GroupDocs.Metadata Cloud API. Он позволяет добавлять, редактировать, извлекать и удалять свойства метаданных из документов и форматов файлов изображений. Вам просто нужно определить критерии поиска, и метаданные Cloud REST API позаботятся об указанных операциях с метаданными в поддерживаемых форматах файлов. Он также предоставляет 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#
Вы можете добавить метаданные к изображениям, выполнив простые шаги, указанные ниже:
- Загрузить изображение в Облако
- Добавить метаданные в изображение с помощью 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.
- Определить дополнительные параметры
- Установите Value и SearchCriteria для свойства с помощью модели 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);
Скачать изображение
Приведенные выше примеры кода сохранят обновленный файл 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);
Удалить метаданные из изображения с помощью 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);
Извлечение метаданных из изображения с помощью C#
Вы можете программно извлечь метаданные из изображения JPEG, выполнив шаги, указанные ниже.
- Создайте экземпляр MetadataApi
- Установите путь к файлу изображения JPEG в модели FileInfo.
- Определить параметры извлечения
- Создайте 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, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.