Bonjour a tous
J'ai un petit probleme concernant la gestion d'image. Je veux charger une image bitmap a partir d'un fichier, reduire sa taille en gardant ses proportions (je veux une hauteur de 512 pixels) et ensuite sauvegrader cette nouvelle image dans un fichier, en conservant le format bitmap.
Donc voila c'est tout ca qui ne marche pas. Ce qui ne marche pas en fait, c'est la sauvegarde au format bmp. Mais ce qui est bizarre, c'est que si j'essaye de sauvegrader mon image originale, ca marche, mais si je sauvegarde mon image reduite apres l'avoir encodee j'obtiens cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 //Je lis mon image a partir d'un chemin d'acces BufferedImage im=ImageIO.read(new File(((File)implants[0]).getPath())); int width = ((im.getWidth() * 512) / im.getHeight()); int height=512; /* On crée une nouvelle image aux bonnes dimensions. */ BufferedImage buf = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); /* On dessine sur le Graphics de l'image bufferisée. */ Graphics2D g = buf.createGraphics(); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.drawImage(im, 0, 0, width, height, null); g.dispose(); //fichier dans lequel je veux copier ma nouvelle image File fileToWriteTo=new File("C:/NewImages/"+0+"image.bmp"); //j'encode en bmp OutputStream os = new FileOutputStream(fileToWriteTo); com.sun.media.jai.codec.BMPEncodeParam param = new com.sun.media.jai.codec.BMPEncodeParam(); com.sun.media.jai.codec.ImageEncoder enc = com.sun.media.jai.codec.ImageCodec.createImageEncoder("BMP", os, param); PlanarImage input =PlanarImage.wrapRenderedImage(buf); //JAI.create("fileload",implants[0].getPath()); enc.encode(input); os.close();
...que je ne comprends pas du tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Only images with either 1 or 3 bands can be written out as BMP files.
Voila, si quelqu'un pouvait m'aider ce serait cool, en trouvant pourquoi ca marche pas ou en ayant une autre facon de faire. A mon avis, je suis pas le premier a avoir ce probleme de reduction de taill et de vouloir sauvegarder en bitmap.
Voile, merci d'avance
Thomas
Partager