Dans divers scénarios, les images sont compressées pour réduire leur taille de fichier. Pour cela, différentes applications en ligne ou hors ligne permettent d’appliquer une compression d’image. Cependant, dans certains cas, vous devrez peut-être implémenter la fonction de compression d’image à partir de vos applications Web ou de bureau. Dans de tels cas, cet article explique comment compresser des images, y compris PNG, JPEG et TIFF par programmation à l’aide de Java.

API de compression d’images Java

Aspose.Imaging for Java est une API puissante qui vous permet d’effectuer diverses opérations de traitement d’image à partir des applications Java. De plus, il vous permet de compresser les images PNG, JPEG et TIFF de manière transparente. Pour utiliser l’API, vous pouvez soit télécharger son JAR, soit l’installer dans vos applications basées sur 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>

Compresser les images PNG en Java

Le format PNG prend en charge une compression sans perte, ce qui signifie que la compression d’une image PNG réduira sa taille de fichier mais pas sa qualité. Pour les images PNG, Aspose.Imaging for Java vous permet de définir des niveaux de compression de 0 à 9, où 0 et 9 sont respectivement les niveaux de compression minimum et maximum. Voici les étapes pour compresser une image PNG en utilisant Java.

L’exemple de code suivant montre comment compresser une image PNG à l’aide de Java.

// Charger une image à partir d'un fichier (ou d'un flux)
Image image = Image.load("aspose_logo.png");

// Boucle sur la plage de niveau de compression possible
for (int i = 0; i <= 9; i++) {
	
  // Créer une instance de PngOptions pour chaque PNG résultant
	PngOptions options = new PngOptions();
	
  // Définir le niveau de compression
	options.setCompressionLevel(i);
	
  // Enregistrer le résultat sur disque (ou flux)
	image.save("CompressingFiles_out" + i + ".png", options);
}

Compresser les images JPEG à l’aide de Java

Pour la compression d’image JPEG, Aspose.Imaging for Java fournit les types de compression suivants.

  • Ligne de base
  • Progressive
  • Sans perte
  • JpegLs

Voici les étapes pour appliquer l’un des types de compression mentionnés ci-dessus aux images JPEG à l’aide de Java.

L’exemple de code suivant montre comment compresser des images JPEG à l’aide de Java.

// Charger l'image
Image original = Image.load("Input.jpeg");
try
{
    JpegOptions jpegOptions = new JpegOptions()
	  {{
        // Appliquer la compression
		    setCompressionType(JpegCompressionMode.Progressive);
	  }};
  
  // Enregistrer l'image compressée
  original.save("result.jpg", jpegOptions);
}
finally
{
  original.dispose();
}

Compresser les images TIFF à l’aide de Java

Aspose.Imaging for Java fournit une variété de types de compression TIFF qui incluent LZW, Packbits, CCIT Fax 3 & 4 et etc. Par conséquent, vous pouvez sélectionner le type de compression qui convient le mieux à vos besoins. Voici les étapes à suivre pour effectuer une compression TIFF à l’aide de Java.

L’exemple de code suivant montre comment compresser des images TIFF à l’aide de Java.

// Charger une image via l'emplacement du chemin de fichier ou le flux
try (Image image = Image.load("sample.tiff"))
{
	// Créer une instance de TiffOptions pour l'image résultante
	TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);

	// Définissez BitsPerSample, Compression, Mode photométrique et palette de niveaux de gris
	outputSettings.setBitsPerSample(new int[] { 4 });
	outputSettings.setCompression(TiffCompressions.Lzw);
	outputSettings.setPhotometric(TiffPhotometrics.Palette);
	outputSettings.setPalette(ColorPaletteHelper.create4BitGrayscale(false));
	image.save("SampleTiff_out.tiff", outputSettings);
}

Obtenez une licence API gratuite

Si vous souhaitez essayer l’API sans limitation d’évaluation, vous pouvez obtenir une licence temporaire gratuite.

Conclusion

La compression d’image est souvent nécessaire afin de réduire la taille des images. Par conséquent, cet article a expliqué comment compresser des images PNG, JPEG et TIFF par programmation à l’aide de Java. De plus, vous pouvez en savoir plus sur l’API de traitement d’image Java à l’aide de documentation.

Voir également

Info : Aspose a récemment développé une nouvelle application web en ligne qui permet de transformer un ensemble d’images en vidéo. Vous pourriez également être intéressé par un autre service qui peut être utilisé pour compresser des vidéos en extrayant les sons des vidéos.