Extraer metadatos de imágenes usando C#

Puede agregar, editar, eliminar o extraer detalles de la imagen como la altura, el ancho, la marca, el modelo, etc. almacenados en forma de metadatos mediante programación. Como desarrollador de C#, puede extraer y manipular fácilmente la información de metadatos de las imágenes mediante programación en la nube. En este artículo, aprenderá cómo extraer y manipular los metadatos de las imágenes mediante una API REST en C#.

Los siguientes temas se discuten/tratan en este artículo:

Manipulación de metadatos de documentos REST API y .NET SDK

Para manipular los metadatos de las imágenes JPEG, utilizaré la API .NET SDK de GroupDocs.Metadata Cloud. Le permite agregar, editar, recuperar y eliminar propiedades de metadatos de documentos y formatos de archivo de imagen. Solo necesita definir los criterios de búsqueda y la API REST de metadatos en la nube se encargará de las operaciones de metadatos especificadas dentro de formatos de archivo admitidos. También proporciona Java SDK como sus miembros de la familia de manipulación de metadatos de documentos para la API de la nube.

Puede instalar GroupDocs.Metadata en su proyecto de Visual Studio desde el Administrador de paquetes NuGet o mediante el siguiente comando en la consola del Administrador de paquetes:

Install-Package GroupDocs.Metadata-Cloud

Obtenga su ID de cliente y Secreto de cliente del panel de control antes de comenzar a seguir los pasos y los ejemplos de código disponibles. Una vez que tenga su ID de cliente y secreto, agregue el código como se muestra a continuación:

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

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

Agregue metadatos a las imágenes usando una API REST en C#

Puede agregar metadatos a las imágenes siguiendo los sencillos pasos que se detallan a continuación:

Sube la imagen

En primer lugar, cargue el archivo JPEG en la nube utilizando el ejemplo de código que se proporciona a continuación:

// inicialización de la 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();
}

Como resultado, el archivo de imagen JPEG cargado estará disponible en la sección de archivos de su tablero en la nube.

Agregar metadatos a la imagen usando C#

Puede agregar metadatos a la imagen JPEG mediante programación siguiendo los pasos que se indican a continuación.

  • Crear una instancia de MetadataApi
  • Establecer la ruta del archivo de imagen JPEG en el modelo FileInfo
  • Definir AgregarOpciones
  • Establecer valor y criterios de búsqueda para la propiedad mediante el modelo AddProperty
  • Crear AddRequest con AddOptions
  • Obtenga resultados llamando al método MetadataApi.Add()

El siguiente ejemplo de código muestra cómo agregar metadatos a una imagen JPEG mediante una API REST.

// inicialización de la API
var apiInstance = new MetadataApi(configuration);

// ruta de la imagen de entrada
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// definir opciones de adición de metadatos
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"
                }
            },
        }
    }
};

// Añadir solicitud
var request = new AddRequest(options);
var response = apiInstance.Add(request);
Agregue metadatos de imágenes usando una API REST en C#

Agregue metadatos de imágenes usando una API REST en C#

Descargar la imagen

Los ejemplos de código anteriores guardarán el archivo JPEG actualizado en la nube y se pueden descargar utilizando el siguiente ejemplo de código:

// inicialización de la API
var fileApi = new FileApi(configuration);

// ruta predeterminada
var file = "metadata\\add_metadata\\input_jpg\\input.jpg";

// solicitud de descarga
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);
}

Actualizar metadatos de imagen usando C#

Puede actualizar los metadatos de la imagen JPEG mediante programación siguiendo los pasos que se indican a continuación.

  • Crear una instancia de MetadataApi
  • Establecer la ruta del archivo de imagen JPEG en el modelo FileInfo
  • Definir SetOptions
  • Establecer NewValue y SearchCriteria para la propiedad mediante el modelo SetProperty
  • Crear SetRequest con SetOptions
  • Obtenga resultados llamando al método MetadataApi.Set()

El siguiente ejemplo de código muestra cómo configurar los metadatos de una imagen JPEG mediante una API REST. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

// inicialización de la API
var apiInstance = new MetadataApi(configuration);

// ruta de la imagen de entrada
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// definir las opciones del conjunto de metadatos
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"
        }
    }
};

// solicitud de actualización
var request = new SetRequest(options);
var response = apiInstance.Set(request);
Actualizar metadatos de imágenes usando una API REST en C#

Actualizar metadatos de imágenes usando una API REST en C#

Eliminar metadatos de la imagen usando C#

Puede eliminar los metadatos de la imagen JPEG mediante programación siguiendo los pasos que se indican a continuación.

  • Crear una instancia de MetadataApi
  • Establecer la ruta del archivo de imagen JPEG en el modelo FileInfo
  • Definir QuitarOpciones
  • Establecer los criterios de búsqueda
  • Crear RemoveRequest con RemoveOptions
  • Obtenga resultados llamando al método MetadataApi.Remove()

El siguiente ejemplo de código muestra cómo eliminar metadatos de una imagen JPEG mediante una API REST. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

// inicialización de la API
var apiInstance = new MetadataApi(configuration);

// ruta de la imagen de entrada
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// definir las opciones de eliminación de metadatos
var options = new RemoveOptions
{
    FileInfo = fileInfo,
    SearchCriteria = new SearchCriteria
    {
        TagOptions = new TagOptions
        {
            PossibleName = "Copyright"
        }
    }
};

// eliminar solicitud
var request = new RemoveRequest(options);
var response = apiInstance.Remove(request);
Eliminar metadatos de imágenes usando una API REST en C#

Eliminar metadatos de imágenes usando una API REST en C#

Extraiga metadatos de la imagen usando C#

Puede extraer los metadatos de la imagen JPEG mediante programación siguiendo los pasos que se indican a continuación.

  • Crear una instancia de MetadataApi
  • Establecer la ruta del archivo de imagen JPEG en el modelo FileInfo
  • Definir opciones de extracción
  • Crear solicitud de extracción con opciones de extracción
  • Obtenga resultados llamando al método MetadataApi.Extract()

El siguiente ejemplo de código muestra cómo extraer metadatos de una imagen JPEG mediante una API REST. Siga los pasos mencionados anteriormente para cargar un archivo.

// inicialización de la API
var apiInstance = new MetadataApi(configuration);

// archivo fuente
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// extraer opciones
var options = new ExtractOptions
{
    FileInfo = fileInfo
};

// extraer solicitud
var request = new ExtractRequest(options);
var response = apiInstance.Extract(request);

// metadatos extraídos
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);
        }
    }
}
Metadatos de imagen

Metadatos de imagen

El ejemplo de código anterior producirá el siguiente resultado:

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

Prueba en línea

Pruebe la siguiente herramienta en línea gratuita de manipulación de metadatos JPEG, que se desarrolla utilizando la API anterior. https://products.groupdocs.app/metadata/jpeg

Conclusión

En este artículo, ha aprendido a agregar, editar, eliminar y extraer metadatos de imágenes en la nube. Este artículo también explicó cómo cargar mediante programación un archivo de imagen JPEG en la nube y descargarlo de la nube. Puede aprender aún más sobre GroupDocs.Metadata Manipulation Cloud API utilizando la documentación. También proporcionamos una sección Referencia de API que le permite visualizar e interactuar con nuestras API directamente a través del navegador. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también