Maison  >  Article  >  Java  >  Comment obtenir un contrôle explicite du niveau de compression pour les images JPEG avec ImageIO ?

Comment obtenir un contrôle explicite du niveau de compression pour les images JPEG avec ImageIO ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 18:43:39440parcourir

How to Achieve Explicit Compression Level Control for JPEG Images with ImageIO?

Définition du niveau de compression pour les images JPEG avec ImageIO

Lors de l'enregistrement d'images au format JPEG à l'aide d'ImageIO, il est courant de vouloir ajuster le niveau de compression pour contrôler l'équilibre entre la qualité de l'image. et la taille du fichier. Cependant, la fonctionnalité ImageIO par défaut ne dispose pas de cette option.

Pour définir explicitement le niveau de compression, nous devons approfondir l'API ImageIO. L'utilisation d'ImageIO.getImageWritersByFormatName("jpg").next() donne accès à un ImageWriter, qui nous permet de modifier des paramètres spécifiques pour le format JPEG.

La classe ImageWriteParam permet de contrôler les paramètres de compression. En définissant ImageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT), nous activons le paramètre explicite du niveau de compression.

Pour spécifier le niveau de compression, utilisez ImageWriteParam.setCompressionQuality(0.7f) (où 0,7f représente le niveau de compression souhaité). Une valeur plus proche de 1,0 indique une qualité supérieure et moins de compression, tandis qu'une valeur plus proche de 0,0 correspond à une qualité inférieure et à une compression plus élevée.

La méthode ImageWriter.setOutput() nécessite un ImageOutputStream, qui nous permet de contrôler la taille de l'image. destination. Utilisez soit FileImageOutputStream pour la sortie du fichier, soit MemoryCacheImageOutputStream pour la sortie vers une mémoire tampon.

Pour enregistrer le JPEG modifié, utilisez jpgWriter.write(null, outputImage, jpgWriteParam), où outputImage est une IIOImage contenant les données de l'image et jpgWriteParam. sont les paramètres de compression configurés précédemment.

Cette approche fournit un contrôle précis des niveaux de compression JPEG, vous permettant d'optimiser la qualité de l'image et la taille du fichier pour vos besoins spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn