Ajustement du niveau de compression JPEG en Java avec ImageIO
Dans le domaine de la manipulation d'images, contrôler le niveau de compression des fichiers JPEG est essentiel pour équilibrer qualité de l'image et taille du fichier. Bien que le niveau de compression par défaut pour ImageIO ne soit pas toujours suffisant, cet article explique comment affiner ce paramètre.
Obtenir directement ImageWriter
Une approche directe implique récupération de ImageWriter pour le format JPEG :
ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next();
Définition des paramètres de compression explicites
Pour définir explicitement le niveau de compression, utilisez la classe ImageWriteParam :
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
Ajustement de la qualité de compression
Le niveau de compression souhaité est spécifié sous forme de flotteur compris entre 0,0f (compression maximale, qualité minimale) et 1.0f (compression minimale, qualité maximale) :
jpgWriteParam.setCompressionQuality(0.7f); // Set a compression quality of 70%
Écriture de la sortie
L'ImageWriter nécessite un ImageOutputStream pour générer l'image :
ImageOutputStream outputStream = createOutputStream(); // Generate an OutputStream (e.g., a FileImageOutputStream)
jpgWriter.setOutput(outputStream);
Finalisation
Une fois l'image écrite, l'ImageWriter doit être supprimé :
jpgWriter.dispose();
En conclusion, en obtenant directement ImageWriter et en définissant des paramètres de compression explicites, vous obtenez un contrôle précis sur le niveau de compression JPEG, optimisant ainsi la qualité de l'image et la taille du fichier en fonction de vos besoins spécifiques.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3