Maison >Java >javaDidacticiel >Comment contrôler le niveau de compression JPEG lors de l'enregistrement d'images à l'aide d'ImageIO en Java ?
ImageIO, une partie de l'API Java pour Image I/O (JAII), fournit un moyen pratique de lire et écrire des images dans divers formats, y compris JPEG. Cependant, par défaut, ImageIO n'offre pas de contrôle direct sur le niveau de compression JPEG. Cet article explique comment surmonter cette limitation et définir le niveau de compression souhaité lors de l'enregistrement d'une image tamponnée en tant que fichier JPEG.
La fonction Java fournie, getScreenShot, capture une BufferedImage et l'enregistre sous forme de fichier JPEG. Cependant, il ne spécifie aucun paramètre de compression.
<code class="java">public static void getScreenShot(BufferedImage capture, Path folder, String filename) { try { ImageIO.write(capture, "jpeg", new File(folder.toString()+"/"+filename+".jpg")); } catch (AWTException | IOException ex) { Logger.getLogger(ScreenShotMaker.class.getName()).log(Level.SEVERE, null, ex); } }</code>
Pour définir le niveau de compression JPEG, vous devez accéder à l'objet ImageWriteParam, qui contient des paramètres contrôlant le processus d’encodage d’images. Voici un extrait plus détaillé :
<code class="java">ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next(); ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam(); jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpgWriteParam.setCompressionQuality(0.7f);</code>
En définissant compressionMode sur MODE_EXPLICIT, vous contrôlez explicitement le niveau de compression. La valeur transmise à compressionQuality détermine le niveau de compression souhaité, 1,0f représentant la qualité maximale et 0,0f représentant la compression maximale.
En incorporant ces améliorations, vous pouvez personnaliser le niveau de compression JPEG pour répondre à vos besoins spécifiques tout en enregistrant des images à l'aide d'ImageIO en Java.
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!