El TIFF(Formato de archivo de imagen etiquetado) se utiliza ampliamente en la publicación, el diseño gráfico y la fotografía debido a su capacidad para almacenar gráficos raster de alta calidad. A diferencia de JPEG o PNG, un archivo TIFF puede contener múltiples imágenes o fotogramas dentro de un solo archivo. Estas imágenes TIFF de múltiples fotogramas se utilizan a menudo en la imagen médica, documentos escaneados y diseños en capas.

API de Procesamiento de Imágenes

Aspose.Imaging Cloud SDK for .NET es una API increíble basada en arquitectura REST, que ofrece las capacidades para manipular y procesar imágenes en línea. Ofrece un enfoque simple y fácil para extraer el marco TIFF de una imagen TIFF de múltiples cuadros dentro de un fragmento de código C# .NET. El SDK está disponible para su descarga desde NuGet y GitHub. Ahora, instala la API REST para comenzar a manipular TIFF y otros formatos de imagen.

Install-Package Aspose.Imaging-Cloud

Consigue tu ID de Cliente y Secreto de Cliente desde Aspose Cloud dashboard.

Extraer fotogramas TIFF usando C#

Esta sección explica los detalles sobre cómo podemos extraer fácilmente un marco TIFF utilizando C# .NET.

  • Primero, crea un objeto de ImagingApi proporcionando ClientID y ClientSecret como argumentos.
  • En segundo lugar, crea un objeto de GetImageFrameRequest que toma el nombre TIFF, frameID y otros parámetros como argumentos.
  • Ahora, llama al método GetImageFrame(..) de ImagingApi donde pasamos el objeto GetImageFrameRequest como argumento de entrada.
  • Finalmente, guarda la imagen extraída.
// Obtener ClientID y ClientSecter de https://dashboard.aspose.cloud/
string clientID = "XXXXX-XXXXXXXXXX-bff4-f5a14a4b6466"; 
string clientSecret = "XXXXXXXXXX";

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

// imagen TIFF disponible en 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/nayyer/Downloads/MyResultant.tiff"))
{
    imageFrame.Seek(0, SeekOrigin.Begin);
    imageFrame.CopyTo(fileStream);
}

Podemos proporcionar cualquiera de los valores a la propiedad rotateFlipMethod.

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

Obtener fotogramas TIFF usando cURL

Alternativamente, también podemos usar comandos cURL para realizar esta operación. Puede considerar usar cualquiera de las siguientes llamadas a la API para realizar esta operación.

  1. GET /imaging/{name}/frames/{frameId} - Cargar imagen del almacenamiento en la nube y obtener la imagen en respuesta.
  2. POST /imaging/frames/{frameId} - Enviar TIFF en el cuerpo de la solicitud y obtener la imagen resultante en la respuesta.

El primer paso es generar un JSON Web Token (JWT) basado en tu ClientID y ClientSecret. Por lo tanto, ejecuta 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=XXXXXX-XXXXX-XXX-bff4-f5a14a4b6466&client_secret=XXXXXXXXXXX" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Ahora, ejecuta el siguiente comando para extraer el 2º fotograma de TiffSampleImage.tiff imagen ya subida en el almacenamiento en la nube.

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

Conclusión

La capacidad de extraer fotogramas individuales de imágenes TIFF de múltiples fotogramas es valiosa al trabajar con documentos escaneados de varias páginas, archivos de imágenes en capas o conjuntos de datos de imágenes médicas. Con Aspose.Imaging Cloud SDK para .NET, puedes automatizar este proceso fácilmente, utilizando llamadas a la API REST o código C#.

Artículos Recomendados

Recomendamos que visites los siguientes enlaces para aprender sobre: