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
- Comprimir imagens PNG em Java
- Comprimir imagens JPEG em Java
- Aplicar compactação a imagens TIFF em Java
- Obtenha uma licença de API gratuita
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.
- Primeiro, carregue a imagem PNG usando a classe Image.
- Crie uma instância da classe PngOptions.
- Defina o nível de compactação usando o método PngOptions.setCompressionLevel(int).
- Finalmente, salve a imagem PNG compactada usando o método Image.save(String, PngOptions).
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.
- Primeiro, carregue a imagem JPEG usando a classe Image.
- Crie uma instância da classe JpegOptions.
- Defina o nível de compactação usando o método JpegOptions.setCompressionType(JpegCompressionMode).
- Finalmente, salve a imagem JPEG compactada usando o método Image.save(String, JpegOptions).
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.
- Primeiro, carregue a imagem TIFF usando a classe Image.
- Crie uma instância da classe TiffOptions.
- Defina o nível de compactação usando o método TiffOptions.setCompression(TiffCompressions).
- Defina outras opções, como bits por amostra, fotométrica, paleta, etc.
- Finalmente, salve a imagem TIFF compactada usando o método Image.save(String, TiffOptions).
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.