Em vários cenários, as imagens são compactadas para reduzir o tamanho do arquivo. Para isso, diferentes aplicativos online ou offline permitem que você aplique compressão de imagem. No entanto, em certos casos, pode ser necessário implementar o recurso de compactação de imagem em seus aplicativos da Web ou de desktop. Para esses casos, este artigo aborda como compactar imagens, incluindo PNG, JPEG e TIFF programaticamente usando Java.

API de compactação de imagem Java

Aspose.Imaging for Java é uma API poderosa que permite realizar várias operações de processamento de imagem de dentro dos aplicativos Java. Além disso, permite compactar imagens PNG, JPEG e TIFF sem problemas. Para usar a API, você pode baixar seu JAR ou instalá-lo em seus aplicativos baseados em Maven.

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

Comprimir imagens PNG em Java

O formato PNG suporta uma compactação sem perdas, o que significa que compactar uma imagem PNG reduzirá o tamanho do arquivo, mas não a qualidade. Para imagens PNG, o Aspose.Imaging for Java permite definir níveis de compactação de 0 a 9, onde 0 e 9 são níveis de compactação mínimo e máximo, respectivamente. A seguir estão as etapas para compactar uma imagem PNG usando Java.

O exemplo de código a seguir mostra como compactar uma imagem PNG usando Java.

// Carregar uma imagem do arquivo (ou stream)
Image image = Image.load("aspose_logo.png");

// Faça um loop sobre a faixa de nível de compactação possível
for (int i = 0; i <= 9; i++) {
	
  // Crie uma instância de PngOptions para cada PNG resultante
	PngOptions options = new PngOptions();
	
  // Definir nível de compactação
	options.setCompressionLevel(i);
	
  // Salvar resultado em disco (ou stream)
	image.save("CompressingFiles_out" + i + ".png", options);
}

Comprimir imagens JPEG usando Java

Para compactação de imagem JPEG, Aspose.Imaging for Java fornece os seguintes tipos de compactação.

  • Linha de base
  • Progressivo
  • Sem perdas
  • JPEGL

A seguir estão as etapas para aplicar um dos tipos de compactação mencionados acima a imagens JPEG usando Java.

O exemplo de código a seguir mostra como compactar imagens JPEG usando Java.

// Carregar imagem
Image original = Image.load("Input.jpeg");
try
{
    JpegOptions jpegOptions = new JpegOptions()
	  {{
        // Aplicar compressão
		    setCompressionType(JpegCompressionMode.Progressive);
	  }};
  
  // Salvar imagem compactada
  original.save("result.jpg", jpegOptions);
}
finally
{
  original.dispose();
}

Comprimir imagens TIFF usando Java

O Aspose.Imaging para Java fornece uma variedade de tipos de compactação TIFF que incluem LZW, Packbits, CCIT Fax 3 e 4 e etc. Portanto, você pode selecionar o tipo de compactação que melhor atende às suas necessidades. A seguir estão as etapas para executar a compactação TIFF usando Java.

O exemplo de código a seguir mostra como compactar imagens TIFF usando Java.

// Carregar uma imagem por meio do local do caminho do arquivo ou fluxo
try (Image image = Image.load("sample.tiff"))
{
	// Crie uma instância de TiffOptions para a imagem resultante
	TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);

	// Definir BitsPerSample, Compressão, modo fotométrico e paleta de tons de cinza
	outputSettings.setBitsPerSample(new int[] { 4 });
	outputSettings.setCompression(TiffCompressions.Lzw);
	outputSettings.setPhotometric(TiffPhotometrics.Palette);
	outputSettings.setPalette(ColorPaletteHelper.create4BitGrayscale(false));
	image.save("SampleTiff_out.tiff", outputSettings);
}

Obtenha uma licença de API gratuita

Caso queira experimentar a API sem limitações de avaliação, você pode obter uma licença temporária gratuita.

Conclusão

A compactação de imagem geralmente é necessária para reduzir o tamanho das imagens. Portanto, este artigo abordou como compactar imagens PNG, JPEG e TIFF programaticamente usando Java. Além disso, você pode explorar mais sobre a API de processamento de imagem Java usando documentação.

Veja também

Info: A Aspose desenvolveu recentemente um novo aplicativo da web online que permite que você transforme um conjunto de imagens em um vídeo. Você também pode estar interessado em outro serviço que pode ser usado para compactar vídeos extraindo os sons dos vídeos.