Extraer fotogramas TIFF

El formato de archivo de imagen de etiqueta, abreviado TIFF o TIF, es un formato de archivo informático para almacenar imágenes de gráficos rasterizados, popular entre artistas gráficos, la industria editorial y fotógrafos. TIFF es diferente de JPEG, GIF y PNG porque es un formato “sin comprimir”. Los archivos TIFF tienen la capacidad de almacenar múltiples imágenes, cada una con múltiples canales. Por lo general, estas múltiples imágenes representan los fotogramas secuenciales en una pila de tiempo o pila z de imágenes y, por lo tanto, cada una de estas imágenes tiene la misma dimensión.

Otras opciones que tenemos en TIFF son capas y páginas donde la capa se puede comparar con la transparencia en la que se aplican efectos de imagen o imágenes y se colocan encima o debajo de una imagen. Como se muestra en la imagen a continuación, la imagen muestra las múltiples capas que tiene. En este artículo, analizaremos los pasos para extraer fotogramas de imágenes TIFF de varios fotogramas utilizando Aspose.Imaging Cloud SDK para .NET.

Imagen TIFF con marcos

Instalación del SDK

Aspose.Imaging Cloud SDK for .NET es un SDK de programación desarrollado sobre la API de Aspose.Imaging Cloud y brinda todas las capacidades de manipulación de imágenes a los desarrolladores de .NET. Por lo tanto, el primer paso es instalar el SDK, que está disponible para descargar en NuGet y GitHub. Ejecute el siguiente comando para instalar el SDK desde la biblioteca NuGet.

Install-Package Aspose.Imaging-Cloud

Como alternativa, puede agregar el paquete mediante el administrador de paquetes NuGet en Visual Studio, como se muestra a continuación. Puede visitar el siguiente vínculo para obtener más detalles sobre Cómo instalar los SDK de Aspose.Cloud.

SDK de Aspose.Imaging Cloud

Ahora, para poder usar el SDK, el siguiente paso es obtener los detalles de ClientID y ClientSecret personalizados. Por lo tanto, el primer paso es crear una cuenta visitando el panel de control de Aspose.Cloud. Si tiene una cuenta de GitHub o Google, simplemente regístrese. De lo contrario, haga clic en el botón Crear una nueva cuenta y proporcione la información requerida. Ahora inicie sesión en el panel de control con credenciales y expanda la sección Aplicaciones desde el panel de control y desplácese hacia abajo hasta la sección Credenciales del cliente para ver los detalles de Client ID y Client Secret.

Vista previa de ClientID y ClientSecret

Extraer fotogramas TIFF usando el comando cURL

Primero, vamos a analizar la extracción de marcos TIFF mediante el comando cURL, ya que son una de las formas más convenientes de acceder a las API REST en cualquier plataforma, independientemente de la plataforma y las complejidades arquitectónicas subyacentes. Por lo tanto, para utilizar los comandos cURL, el primer paso es generar un token web JSON (JWT) en función de los detalles de ClientID y ClientSecret recuperados del panel de Aspose.Cloud. Ejecute el siguiente comando en la terminal para generar el token JWT

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=718e4235-8866-4ebe-bff4-f5a14a4b6466&client_secret=388e864b819d8b067a8b1cb625a2ea8e" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Antes de continuar, tenga en cuenta que el marco se puede extraer utilizando una de las siguientes dos API:

La primera API espera que primero cargues una imagen en Cloud Storage y luego pases su nombre en la URL de la API. Después de actualizar los parámetros de la imagen, la API devuelve la imagen actualizada en la respuesta.

Por otro lado, con la segunda API, puedes pasar directamente la imagen en el cuerpo de la solicitud. También te permite guardar la imagen actualizada en Cloud Storage especificando el valor del parámetro outPath. Sin embargo, si no especificas el valor, la respuesta contiene una imagen transmitida.

Ahora use el siguiente comando para extraer el cuarto cuadro de la imagen TiffSampleImage.tiff ya cargada en el almacenamiento en la nube.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/TiffSampleImage.tiff/frames/4?saveOtherFrames=true" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o myresultant.tiff

Cómo extraer fotogramas TIFF en C#

En esta sección, vamos a extraer el marco TIFF con C# .NET. Siga los pasos que se indican a continuación.

  • El primer paso es crear un objeto de ImagingApi mientras se proporcionan ClientID y ClientSecret como argumentos.
  • Crear un objeto de cadena que define la imagen TIFF de entrada
  • Para especificar el marco que se va a extraer, cree un entero
  • Crea objetos enteros para especificar las dimensiones del marco extraído
  • El siguiente paso es crear un objeto GetImageFrameRequest que toma el nombre TIFF de entrada, frameID y otros parámetros relacionados con las dimensiones del marco extraído como argumentos.
  • Penúltimo, llame al método GetImageFrame(..) de ImagingApi que toma el objeto GetImageFrameRequest como argumento de entrada
  • Finalmente, guarde la salida para cargar la unidad.
string clientID = "718e4235-8866-4ebe-bff4-f5a14a4b6466"; // Get ClientID from https://dashboard.aspose.cloud/
string clientSecret = "388e864b819d8b067a8b1cb625a2ea8e"; // Get CLientSecret from https://dashboard.aspose.cloud/

// crear una instancia de ImagingApi
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);

// La imagen TIFF de entrada está disponible en el almacenamiento en la nube
String fileName = "TiffSampleImage.tiff";

int? frameId = 5; // Index of a frame
int? newWidth = 300;
int? newHeight = 450;
int? x = 10;
int? y = 10;
int? rectWidth = 200;
int? rectHeight = 300;

string rotateFlipMethod = "RotateNoneFlipNone";

// El resultado incluirá solo el marco especificado
bool? saveOtherFrames = false;

string folder = null; // Input file is saved at the root of the storage
string storage = null; // We are using default Cloud Storage

GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest(fileName, frameId, newWidth, newHeight,
                                x, y, rectWidth, rectHeight, rotateFlipMethod, saveOtherFrames, folder, storage);

Stream imageFrame = imagingApi.GetImageFrame(getImageFrameRequest);

// Guardar la imagen actualizada en el almacenamiento local
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
    imageFrame.Seek(0, SeekOrigin.Begin);
    imageFrame.CopyTo(fileStream);
}

Tenga en cuenta que la propiedad rotateFlipMethod puede tener uno de los siguientes valores

Método RotateFlip (Rotate180FlipNone, Rotate180FlipX, Rotate180FlipXY, Rotate180FlipY, Rotate270FlipNone, Rotate270FlipX, Rotate270FlipXY, Rotate270FlipY, Rotate90FlipNone, Rotate90FlipX, Rotate90FlipXY, Rotate90FlipY, RotateNoneFlipNone, RotateNoneFlipX, RotateNoneFlipXY, RotateNoneFlipY).El valor predeterminado es RotateNoneFlipNone.

Conclusión

En el artículo anterior se explicó la extracción de fotogramas TIFF a partir de TIFF con varios fotogramas. Además de la extracción de fotogramas, la API permite cambiar el tamaño de los fotogramas TIFF, Obtener propiedades de fotogramas TIFF, Recortar un fotograma TIFF, Girar/Voltear un fotograma TIFF, etc. En caso de que surja algún problema al utilizar la API, no dude en ponerse en contacto con nosotros a través de un foro de soporte gratuito.

También le sugerimos que consulte los siguientes enlaces para obtener más información sobre