Tag Image File Format, abreviado TIFF ou TIF, é um formato de arquivo de computador para armazenar imagens gráficas raster, popular entre artistas gráficos, a indústria editorial e fotógrafos. TIFF é diferente de JPEG, GIF e PNG porque é um formato “não compactado”. Os arquivos TIFF têm a capacidade de armazenar várias imagens, cada uma com vários canais. Normalmente, essas várias imagens representam os quadros sequenciais em uma pilha de tempo ou pilha z de imagens e, portanto, cada uma dessas imagens tem a mesma dimensão.
Outras opções que obtemos em TIFF são camadas e páginas onde a camada pode ser comparada à transparência na qual efeitos de imagem ou imagens são aplicados e colocados sobre ou sob uma imagem. Conforme mostrado na imagem abaixo, a imagem está mostrando várias camadas que ela tem. Neste artigo, vamos discutir as etapas sobre como extrair quadros de imagens TIFF multiquadro usando Aspose.Imaging Cloud SDK para .NET.
Instalação do SDK
Aspose.Imaging Cloud SDK para .NET é um SDK de programação desenvolvido sobre o Aspose.Imaging Cloud API e fornece todos os recursos de manipulação de imagens para desenvolvedores .NET. Então, o primeiro passo é instalar o SDK que está disponível para download em NuGet e GitHub. Execute o comando a seguir para instalar o SDK da biblioteca NuGet.
Install-Package Aspose.Imaging-Cloud
Ou, como alternativa, você pode adicionar o pacote usando o gerenciador de pacotes NuGet no Visual Studio, conforme mostrado abaixo. Você pode considerar visitar o link a seguir para obter mais detalhes sobre Como instalar Aspose.Cloud SDKs.
Agora, para usar o SDK, o próximo passo é obter seus detalhes personalizados de ClientID e ClientSecret. Portanto, o primeiro passo é criar uma conta visitando Aspose.Cloud dashboard. Se você tem uma conta GitHub ou Google, basta se inscrever. Caso contrário, clique no botão Create a new Account e forneça as informações necessárias. Agora faça login no painel usando credenciais e expanda a seção Applications do painel e role para baixo em direção à seção Client Credentials para ver os detalhes de Client ID e Client Secret.
Extraia quadros TIFF usando o comando cURL
Primeiro, vamos discutir a extração de quadros TIFF usando o comando cURL, pois eles são uma das maneiras convenientes de acessar APIs REST em qualquer plataforma. Independentemente da plataforma e das complexidades arquitetônicas subjacentes. Portanto, para usar os comandos cURL, o primeiro passo é gerar JSON Web Token (JWT) com base nos detalhes do seu ClientID e ClientSecret recuperados do painel do Aspose.Cloud. Execute o seguinte comando no terminal para gerar o 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 prosseguir, observe que o quadro pode ser extraído usando uma das duas APIs a seguir:
A primeira API espera que você primeiro carregue uma imagem no Cloud Storage e depois passe seu nome na URL da API. Após atualizar os parâmetros da imagem, a API retorna a imagem atualizada na resposta.
Por outro lado, com a segunda API, você pode passar a imagem diretamente no corpo da solicitação. Ela também permite que você salve a imagem atualizada no Cloud Storage especificando o valor do parâmetro outPath. No entanto, se você não especificar o valor, a resposta conterá uma imagem transmitida.
Agora use o seguinte comando para extrair o 4º quadro da imagem TiffSampleImage.tiff já carregada no armazenamento em nuvem.
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
Como extrair quadros TIFF em C#
Nesta seção, vamos extrair o quadro TIFF usando C# .NET. Siga as etapas fornecidas abaixo
- O primeiro passo é criar um objeto de ImagingApi enquanto fornece ClientID e ClientSecret como argumentos
- Crie um objeto string definindo a imagem TIFF de entrada
- Para especificar o quadro a ser extraído, crie um inteiro
- Crie objetos inteiros para especificar as dimensões do quadro extraído
- O próximo passo é criar um objeto GetImageFrameRequest que recebe o nome TIFF de entrada, frameID e outros parâmetros relacionados às dimensões do quadro extraído como argumentos
- Penúltimo, chame o método GetImageFrame(..) do ImagingApi que recebe o objeto GetImageFrameRequest como argumento de entrada
- Por fim, salve a saída para carregar a unidade
string clientID = "718e4235-8866-4ebe-bff4-f5a14a4b6466"; // Get ClientID from https://dashboard.aspose.cloud/
string clientSecret = "388e864b819d8b067a8b1cb625a2ea8e"; // Get CLientSecret from https://dashboard.aspose.cloud/
// crie uma instância de ImagingApi
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);
// imagem TIFF de entrada disponível no armazenamento em nuvem
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";
// O resultado incluirá apenas o quadro 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);
// Salvar imagem atualizada no armazenamento local
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
imageFrame.Seek(0, SeekOrigin.Begin);
imageFrame.CopyTo(fileStream);
}
Observe que a propriedade rotateFlipMethod pode ter um dos seguintes valores
Método RotateFlip (Rotate180FlipNone, Rotate180FlipX, Rotate180FlipXY, Rotate180FlipY, Rotate270FlipNone, Rotate270FlipX, Rotate270FlipXY, Rotate270FlipY, Rotate90FlipNone, Rotate90FlipX, Rotate90FlipXY, Rotate90FlipY, RotateNoneFlipNone, RotateNoneFlipX, RotateNoneFlipXY, RotateNoneFlipY).O padrão é RotateNoneFlipNone.
Conclusão
A extração de quadros TIFF de TIFF multiquadro foi explicada no artigo acima. Além da extração de quadros, a API permite que você redimensione os quadros TIFF, Obtenha propriedades do quadro TIFF, Corte um quadro TIFF, Gire e inverta um quadro TIFF, etc. Caso você encontre algum problema ao usar a API, sinta-se à vontade para entrar em contato conosco por meio de um fórum de suporte gratuito.
Também sugerimos que você acesse os links a seguir para obter mais informações sobre