Redimensionar imagem usando o redimensionador de imagem Java

Os editores de imagem fornecem um recurso de redimensionamento que permite alterar o tamanho das imagens de acordo com seus requisitos. Ao projetar um editor de imagens ou processar imagens de seus aplicativos Java, pode ser necessário redimensionar as imagens programaticamente. Para fazer isso, este artigo aborda como redimensionar imagens em Java. Além disso, você também aprenderá a redimensionar imagens usando diferentes técnicas de redimensionamento.

API Java para redimensionar imagens

Aspose.Imaging for Java é uma API de processamento de imagem amplamente usada que permite manipular imagens com bastante facilidade. Usaremos essa API para redimensionar imagens neste artigo. Você pode baixar a API na seção de downloads. Além disso, você pode instalá-lo a partir do Maven usando a seguinte configuração em pom.xml.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging-java</artifactId>
    <version>21.12</version>
    <classifier>jdk16</classifier>
</dependency>

Redimensionar imagens raster em Java

Aspose.Imaging for Java fornece duas maneiras de redimensionar imagens raster. Um é o redimensionamento simples no qual você fornece a altura e a largura da imagem resultante. Considerando que, no segundo método, você também especifica um tipo de redimensionamento que informa à API sobre a técnica de redimensionamento que deve ser usada, como reamostragem de Lanczos, reamostragem do vizinho mais próximo etc. Nas seções a seguir, discutiremos como implementar cada uma das esses métodos para redimensionar imagens.

Redimensionar uma imagem com redimensionamento simples

Neste método de redimensionamento, você só precisa fornecer as dimensões da imagem resultante. A seguir estão as etapas para redimensionar uma imagem em Java.

  • Primeiro, use a classe Image para carregar a imagem que deseja redimensionar.
  • Em seguida, chame o método Image.resize(int, int) para redimensionar a imagem.
  • Finalmente, salve a imagem resultante usando o método Image.save(string).

O snippet de código a seguir redimensiona uma imagem para a altura e a largura fornecidas.

// Carregar imagem
Image image = Image.load("aspose-logo.jpg");

// Definir novas dimensões
image.resize(300, 300);

// Salvar imagem
image.save("SimpleResizing_out.jpg");

Redimensionar imagem usando um tipo de redimensionamento

Aspose.Imaging for Java fornece uma ampla gama de técnicas de redimensionamento, que estão listadas aqui. Você pode escolher um que se adapte ao seu cenário. Por exemplo, o Lanczos Resampling é recomendado para redimensionamento de imagem de qualidade, no entanto, funciona mais lentamente. Considerando que, para redimensionamento rápido, é utilizada a reamostragem do vizinho mais próximo, porém, compromete a qualidade da imagem. A seguir estão as etapas para redimensionar uma imagem usando uma técnica de redimensionamento específica.

O exemplo de código a seguir mostra como redimensionar uma imagem usando uma técnica de redimensionamento específica.

// Carregar imagem
Image image = Image.load("aspose-logo.jpg");

// Definir novas dimensões e redimensionar o tipo
image.resize(300, 300, ResizeType.LanczosResample);

// Salvar imagem
image.save("SimpleResizing_out.jpg");

Redimensionamento de imagem proporcional em Java

A proporção é calculada ao redimensionar as imagens para evitar imagens resultantes reduzidas ou dimensionadas. No entanto, qualquer erro de cálculo da proporção pode causar imagens esticadas. Para se livrar desses problemas, você pode deixar a API cuidar da própria proporção. A seguir estão as etapas para redimensionar uma imagem proporcionalmente.

Você também pode especificar um tipo de redimensionamento específico ao redimensionar a imagem proporcionalmente usando os métodos de sobrecarga Image.resizeWidthProportionally(int, ResizeType) e Image.resizeHeightProportionally(int, ResizeType).

A amostra de código Java a seguir mostra como redimensionar uma imagem proporcionalmente.

// Carregar imagem
Image image = Image.load("aspose-logo.jpg");

// Definir novas dimensões
int newWidth = image.getWidth() / 2;
image.resizeWidthProportionally(newWidth);
int newHeight = image.getHeight() / 2;
image.resizeHeightProportionally(newHeight);

// Salvar imagem
image.save("SimpleResizing_out.jpg");

Redimensionando imagens vetoriais em Java

Você também pode redimensionar uma imagem vetorial e salvá-la em um formato de imagem raster, como PNG, JPEG, GIF, etc. O código a seguir demonstra como fazer isso em Java usando Aspose.Imaging.

// Carregar imagem vetorial
try (Image image = Image.load("image.svg"))
{
  	// Definir novas dimensões
	image.resize(image.getWidth() * 10,image.getHeight() * 15);
  
  	// Salve a imagem como PNG
	image.save("Logotype_10_15.png", new PngOptions());
}

Obtenha uma licença de API gratuita

Você pode usar o Aspose.Imaging for Java sem limitações de avaliação obtendo uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como redimensionar imagens programaticamente em Java. Além disso, o artigo abordou como redimensionar imagens usando diferentes técnicas, como reamostragem de Lanczos, reamostragem do vizinho mais próximo, etc. Além disso, o redimensionamento de imagem proporcional e o redimensionamento de imagens vetoriais também são discutidos. Você pode visitar documentação para ler mais sobre a API de processamento de imagem Java. Além disso, você pode aprender com os exemplos de código-fonte disponíveis no GitHub. Em caso de dúvidas, você pode entrar em contato conosco em nosso fórum.

Veja também