como extrair imagem tiff

Como extrair imagens de arquivos TIFF

TIFF de TIF é uma abreviação de Tag Image File Format e está entre as imagens gráficas raster populares, amplamente usadas por artistas gráficos, indústria editorial e fotógrafos. O TIFF é diferente de JPEG, GIF e PNG porque é um formato “descompactado” e pode armazenar muito mais dados de imagem do que suas contrapartes JPEG. Agora, um dos recursos proeminentes dos arquivos TIFF é sua capacidade de armazenar várias imagens (cada uma com vários canais) como quadros sequenciais em uma pilha de tempo ou pilha z de imagens. Portanto, neste artigo, exploraremos os detalhes sobre como extrair quadros de imagens TIFF de vários quadros usando o Java Cloud SDK.

API de processamento de imagem TIFF

Criamos uma API de processamento de imagem que oferece recursos para editar, manipular e transformar raster, metarquivos, photoshop e outros Formatos suportados em uma variedade de formatos de arquivo. Agora falando sobre manipulação de imagens TIFF, a API é muito capaz de processar imagens TIFF. Portanto, de acordo com o escopo deste artigo, usaremos o Aspose.Imaging Cloud SDK for Java, que é um wrapper da API REST. Portanto, a primeira etapa na utilização de seus recursos é adicionar sua referência no projeto java, incluindo as seguintes informações em pom.xml (projeto de tipo de compilação maven).

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-imaging-cloud</artifactId>
        <version>22.4</version>
    </dependency>
</dependencies>

A próxima etapa é obter os detalhes das credenciais do cliente no Cloud Dashboard e, se você não tiver uma conta no Aspose Cloud Dashboard, crie uma conta gratuita por meio de um endereço de e-mail válido. Agora faça o login usando a conta recém-criada e procure/crie o ID do cliente e o segredo do cliente no Aspose Cloud Dashboard.

Como extrair imagem TIFF em Java

Vamos explorar os detalhes de como extrair imagens de arquivos tiff usando o trecho de código Java. Observe que a API também permite redimensionar, recortar e girar o quadro extraído. Além disso, um dos parâmetros booleanos saveOtherFrames permite especificar se o resultado incluirá todos os outros quadros ou apenas um quadro especificado.

  • Em primeiro lugar, crie um objeto de ImagingApi com base nas credenciais personalizadas do cliente
  • Em segundo lugar, leia o conteúdo da primeira imagem TIFF usando o método readAllBytes(…) e passe para o array byte[]
  • Em terceiro lugar, crie uma instância da classe UploadFileRequest onde especificamos o nome do TIFF sobre o armazenamento em nuvem
  • Agora carregue a primeira imagem TIFF para o armazenamento em nuvem usando o método uploadFile(…)
  • O próximo passo é especificar o índice do quadro TIFF, altura e largura do quadro extraído, origem da extração e especificar se você deseja o quadro extraído em particular anjo
  • Agora crie um objeto de GetImageFrameRequest onde especificamos a imagem TIFF de entrada e as propriedades definidas acima
  • Chame o método getImageFrame(…) da ImagingAPI para obter o quadro TIFF
  • Salve o quadro extraído na unidade local usando o objeto FileOutputStream
// Obtenha ClientID e ClientSecret em https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// criar objeto de imagem
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// carregar a primeira imagem TIFF do sistema local
File file1 = new File("DeskewSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// criar objeto de solicitação de upload de arquivo
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// carregue a primeira imagem TIFF para o armazenamento em nuvem
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// nova largura e altura do quadro extraído
Integer newWidth = 1000;
Integer newHeight = 1400;

// origem para iniciar a extração de quadros
Integer x = 10;
Integer y = 10;

// região retangular para extrair o quadro
Integer rectWidth = 900;
Integer rectHeight = 800;

// especifique o ângulo de rotação para o quadro TIFF extraído
String rotateFlipMethod = "Rotate90FlipY";
// Resultado para incluir apenas o quadro especificado e não outros quadros
Boolean saveOtherFrames = false;

// Crie um objeto de solicitação para extrair quadros tiff com base nos detalhes especificados
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    x, y, rectWidth, rectHeight, null, saveOtherFrames, null, null);

// o quadro extraído é retornado no fluxo de resposta
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// Salve o quadro TIFF extraído no armazenamento local
FileOutputStream fos = new FileOutputStream("/Users/s4/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
extrair quadro tiff

Obter visualização de quadros TIFF

As imagens TIFF de amostra usadas no exemplo acima podem ser baixadas de DeskewSampleImage.tif.

Processamento de imagem TIFF usando comandos cURL

Outra maneira conveniente de acessar APIs REST é por meio de comandos cURL. Como o Aspose.Imaging Cloud é baseado na arquitetura REST, também podemos extrair quadros de imagens tiff usando comandos cURL. Agora, o pré-requisito desta atividade é gerar um token de acesso JWT (com base nas credenciais do cliente) usando o seguinte comando.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Após a geração do token JWT, precisamos executar o seguinte comando para extrair o quadro de imagens TIFF.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/first.tiff/frames/0?newWidth=1000&newHeight=1200&x=10&y=10&rectWidth=800&rectHeight=800&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o ExtractedFrame.tiff

Conclusão

Neste ponto, aprendemos todos os detalhes necessários sobre como extrair imagens de arquivos tiff. Exploramos a opção de extrair o quadro TIFF usando o trecho de código Java Java ou por meio de comandos cURL. Outra abordagem para testar os recursos promissores da API é via SwaggerUI e caso você queira modificar o código fonte do SDK, você pode baixá-lo do GitHub (todos os nossos Cloud SDKs são desenvolvidos sob o MIT licença).

No entanto, a Documentação do produto é uma fonte incrível de informações para aprender sobre outros recursos interessantes oferecidos pela API Por fim, caso você encontre algum problema ao usar a API, considere entrar em contato conosco para uma resolução rápida via fórum de suporte ao produto.

Artigos relacionados

Por favor, visite os links a seguir para saber mais sobre: