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
- Compresser les images PNG en Java
- Compresser les images JPEG en Java
- Appliquer la compression aux images TIFF en Java
- Obtenez une licence API gratuite
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.
- Tout d’abord, chargez l’image PNG en utilisant la classe Image.
- Créez une instance de la classe PngOptions.
- Définissez le niveau de compression à l’aide de la méthode PngOptions.setCompressionLevel(int).
- Enfin, enregistrez l’image PNG compressée à l’aide de la méthode Image.save(String, PngOptions).
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.
- Commencez par charger l’image JPEG à l’aide de la classe Image.
- Créez une instance de la classe JpegOptions.
- Définissez le niveau de compression à l’aide de la méthode JpegOptions.setCompressionType(JpegCompressionMode).
- Enfin, enregistrez l’image JPEG compressée à l’aide de la méthode Image.save(String, JpegOptions).
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.
- Commencez par charger l’image TIFF à l’aide de la classe Image.
- Créez une instance de la classe TiffOptions.
- Définissez le niveau de compression à l’aide de la méthode TiffOptions.setCompression(TiffCompressions).
- Définissez d’autres options telles que bits par échantillon, photométrique, palette, etc.
- Enfin, enregistrez l’image TIFF compressée à l’aide de la méthode Image.save(String, TiffOptions).
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.