Salut !
Je cherche à diminuer la qualité d'une image PNG afin qu'elle prenne moins de place physiquement.
Je le fais déjà avec des images JPG en utilisant l'API JAI (Java Advanced Imaging).
Le code ressemble à ça :
img étant un BufferedImage (mon image source) et stream un OutputStream (pour la sortie).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ImageEncodeParam param; if (format.equalsIgnoreCase("JPEG")) { param = new JPEGEncodeParam(); ((JPEGEncodeParam)param).setQuality(quality); } try { JAI.create("encode", img, stream, format, param); } catch (Exception e) { throw new ImagingException("Error encoding Image", e); }
Malheureusement pour les fichiers PNG, l'encodeur PNGEncodeParam.RGB ne permet pas d'utiliser la même méthode setQuality().
Quelqu'un aurait-il une idée ?
merci
Partager