Redimensionar imagem

Redimensionar imagem TIFF usando Java

Sabemos que 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, explicamos como extrair um quadro de uma imagem TIFF, redimensioná-lo e salvá-lo separadamente no armazenamento. A operação de redimensionamento requer novas dimensões (largura e altura) para um quadro TIFF especificado.

API de redimensionamento de imagem

Aspose.Imaging Cloud SDK para Java é nossa solução baseada em REST que oferece recursos para editar, manipular e transformar programaticamente raster, metarquivos, photoshop em uma variedade de Formatos suportados. Ao mesmo tempo, também oferece o recurso de manipulação de imagens TIFF, onde podemos até trabalhar em quadros TIFF individuais. Agora, para começar com a utilização do SDK, precisamos adicionar sua referência em nosso 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>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 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.

Redimensionar imagem online em Java

Nesta seção, vamos usar a API GetImageFrame para desenvolver nosso redimensionador de imagem TIFF. Essa solicitação de API usa um nome de imagem como um caminho na URL, portanto, primeiro precisamos fazer upload da imagem para o Cloud Storage. Depois de atualizar os parâmetros da imagem, a API retorna a imagem atualizada na resposta. Você também obtém a capacidade de redimensionar fotos em massa, bem como pode especificar se precisamos redimensionar apenas um quadro TIFF específico usando o parâmetro saveOtherFrames.

  • 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(…)
  • Especifique o índice do quadro TIFF, nova altura e largura para o quadro extraído e especifique para redimensionar apenas o quadro especificado
  • 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("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 com comandos cURL. Portanto, nesta seção, discutiremos os detalhes sobre como reduzir o tamanho da imagem ou extrair quadros tiff em dimensões específicas usando 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 alguns detalhes incríveis sobre como redimensionar imagens (TIFF) usando Java Cloud SDK. Aprendemos as etapas para redimensionar o quadro TIFF usando o trecho de código Java, bem como exploramos a opção de redimensionar a imagem online usando comandos cURL. Você também pode testar os recursos promissores da API por meio de SwaggerUI no navegador da web. E caso você queira modificar o código-fonte do SDK, você pode baixá-lo no GitHub (todos os nossos Cloud SDKs são desenvolvidos sob a licença MIT).

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: