Redimensionar imagem

Redimensionar imagem TIFF usando Java

Um dos recursos proeminentes dos arquivos TIFF é a 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. Agora, neste artigo, vamos explicar as etapas para extrair um quadro TIFF, redimensioná-lo e salvá-lo separadamente em um armazenamento. A operação online de redimensionamento da imagem atende a novas dimensões (largura e altura) enquanto salva o quadro TIFF atualizado.

API de redimensionamento de imagem

Aspose.Imaging Cloud SDK para Java é nossa solução baseada em REST que permite editar, manipular e transformar programaticamente imagens raster, metarquivos e Photoshop em uma variedade de Formatos suportados. Ele também oferece o recurso para manipular imagens TIFF, onde podemos até trabalhar em quadros TIFF individuais. Agora, para iniciar a utilização do SDK, precisamos adicionar sua referência em um projeto Java. Portanto, adicione os seguintes detalhes em pom.xml do projeto de tipo de compilação maven.

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://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 as credenciais do cliente no Cloud Dashboard e, se você não tiver uma conta no Aspose Cloud Dashboard, crie uma conta gratuita usando um endereço de e-mail válido.

Redimensionar imagem online em Java

Nesta seção, vamos usar a API GetImageFrame para desenvolver nosso redimensionador de imagem TIFF. Também faremos o upload da imagem para o armazenamento em nuvem e, após atualizar os parâmetros da imagem, a imagem modificada é retornada no fluxo de resposta. Observe que a API permite redimensionar fotos em massa ou redimensionar apenas um quadro TIFF específico usando o parâmetro saveOtherFrames.

  • Em primeiro lugar, crie um objeto de ImagingApi usando credenciais de cliente personalizadas
  • Em segundo lugar, leia o conteúdo da primeira imagem TIFF usando o método readAllBytes(…) e retorne-o para o array byte[]
  • Em terceiro lugar, crie uma instância da classe UploadFileRequest onde passamos o nome da imagem TIFF
  • Agora carregue a primeira imagem TIFF para o armazenamento em nuvem usando o método uploadFile(…)
  • A próxima etapa é especificar o índice do quadro TIFF, as novas dimensões de altura e largura e o índice específico do quadro tiff
  • Agora crie um objeto de GetImageFrameRequest onde passamos o nome da imagem TIFF de entrada e as propriedades definidas acima
  • Chame o método getImageFrame(…) da classe ImagingAPI para obter o quadro TIFF especificado
  • Por fim, 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("TiffSampleImage.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 = 400;
Integer newHeight = 600;

// 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,
                    null, null, null, null, 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/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
redimensionar quadro tiff

Redimensionar visualização do quadro TIFF

As imagens TIFF de amostra usadas no exemplo acima podem ser baixadas de TiffSampleImage.tiff.

Reduza o tamanho da imagem usando comandos cURL

Devido à arquitetura REST da API, ela também pode ser acessada por meio de comandos cURL. Portanto, nesta seção, discutiremos os detalhes sobre como reduzir o tamanho da imagem ou extrair tiff frame com dimensões específicas, usando os comandos cURL. Agora, a primeira etapa é 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 redimensionar o quadro TIFF.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/input.tiff/frames/0?newWidth=400&newHeight=600&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"
-o ResizedFrame.tiff

Conclusão

Este artigo forneceu detalhes simples, mas surpreendentes, sobre como redimensionar imagens (TIFF) usando Java. Este tutorial também explicou todas as etapas para redimensionar quadros TIFF usando comandos cURL. Observe que outra opção para testar os recursos da API é por meio de SwaggerUI em um navegador da web. Além disso, se você estiver interessado em modificar o código-fonte do SDK, ele pode ser baixado do GitHub, pois é publicado sob licença do MIT.

No entanto, a Documentação do produto é uma fonte incrível de informações para aprender todos os detalhes necessários sobre outros recursos interessantes da API. Por fim, caso você encontre problemas ao usar a API, considere entrar em contato conosco para uma solução rápida por meio do [fórum de suporte ao produto] gratuito 9.

Artigos relacionados

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