Maison > Java > javaDidacticiel > le corps du texte

Comment contrôler le niveau de compression JPEG à l'aide d'ImageIO en Java ?

Patricia Arquette
Libérer: 2024-10-25 04:28:30
original
361 Les gens l'ont consulté

How to Control JPEG Compression Level Using ImageIO in Java?

Définition du niveau de compression JPEG à l'aide d'ImageIO en Java

En Java, ImageIO est une bibliothèque polyvalente pour la manipulation d'images. Cependant, il lui manque une méthode explicite pour définir le niveau de compression JPEG lors de l'écriture d'images. Cet article répond à cette limitation en montrant comment ajuster la qualité de la compression à l'aide de l'API ImageIO.

Solution

Pour contrôler la compression JPEG, une approche consiste à utiliser la classe ImageWriteParam. Les étapes suivantes décrivent le processus :

  1. Obtenez l'objet ImageWriter pour le format JPEG.
  2. Récupérez l'ImageWriteParam par défaut pour ImageWriter.
  3. Définissez le mode de compression sur ImageWriteParam.MODE_EXPLICIT.
  4. Spécifiez la qualité de compression souhaitée entre 0,0f (compression maximale) et 1,0f (qualité maximale).
  5. Créez un ImageOutputStream pour gérer la sortie.
  6. Définissez la sortie ImageWriter sur ImageOutputStream.
  7. Créez un objet IIOImage avec les données d'image.
  8. Écrivez l'IIOImage sur ImageOutputStream à l'aide du ImageWriteParam personnalisé.
  9. Éliminez ImageWriter .

Exemple de code :

<code class="java">ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next();
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
jpgWriteParam.setCompressionQuality(0.7f);

ImageOutputStream outputStream = new FileImageOutputStream(new File("output.jpg"));
jpgWriter.setOutput(outputStream);
IIOImage outputImage = new IIOImage(image, null, null);
jpgWriter.write(null, outputImage, jpgWriteParam);
jpgWriter.dispose();</code>
Copier après la connexion

Cet extrait de code définit explicitement la qualité de compression sur 0,7, produisant une image avec un équilibre entre la qualité et la taille du fichier. .

Remarque :

Les exemples supposent l'existence d'une variable image et d'un objet File pour écrire la sortie. De plus, la classe MemoryCacheImageOutputStream est une alternative à FileImageOutputStream lors de l'écriture dans une mémoire tampon.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!