Convertir un BMP en JPG

Convertir un BMP en JPG - Java - Programmation

Marsh Posté le 25-06-2003 à 11:36:32    

Salut,
 
je cherche un bout de code me permettant de convertir un .bmp et .jpg (avec une jdk < 1.4)


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 25-06-2003 à 11:36:32   

Reply

Marsh Posté le 25-06-2003 à 11:41:09    

javax.imageio était livré sous un jar à part pour les versions antérieures à la 1.4. Cherche un brin sur le site de Sun, ça devrait se trouver.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 25-06-2003 à 12:38:25    

justement j ai cherché .....


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 25-06-2003 à 12:50:35    

Ah vi effeectivement, c'est 1.4 seulement... j'pensais qu'il avait été sorti avant et intégré seulement au JDK que depuis la 1.4. [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 25-06-2003 à 14:35:53    

Je connais quelqu'un qui avait trouver un JAR qui lui permettait de sauver des images en JPG, je connais pas le nom de ce JAR, mais je vais essayer de voir ...


---------------
get amaroK plugin
Reply

Marsh Posté le 25-06-2003 à 14:38:25    

Ben, avce JAI que peux faire ça.
Java Advanced Imaging, une librairie de Sun, tu trouveras facilement.

Reply

Marsh Posté le 25-06-2003 à 15:02:32    

voila ce que j'ai pu recuperer comme info ... :  
 
 

// Version 1.0a
// Copyright (C) 1998, James R. Weeks and BioElectroMech.
// Visit BioElectroMech at www.obrador.com.  Email James@obrador.com.
 
// See license.txt for details about the allowed used of this software.
// This software is based in part on the work of the Independent JPEG Group.
// See IJGreadme.txt for details about the Independent JPEG Group's license.
 
// This encoder is inspired by the Java Jpeg encoder by Florian Raemy,
// studwww.eurecom.fr/~raemy.
// It borrows a great deal of code and structure from the Independent
// Jpeg Group's Jpeg 6a library, Copyright Thomas G. Lane.
// See license.txt for details.


---------------
get amaroK plugin
Reply

Marsh Posté le 25-06-2003 à 20:57:53    

ton bonheur est là : http://java.sun.com/products/java- [...] nload.html /!\ le lien, pas la combo. Nécessite un enregistrement
là : http://java.sun.com/products/java- [...] OC.fm.html TRES TRES BON !!
et là : http://java.sun.com/products/java- [...] index.html javadoc ... indispensable
 
conclusion :  

Code :
  1. InputStream inFile = new FileInputStream("E:/temp/photos/toto.bmp" );
  2. SeekableStream s = SeekableStream.wrapInputStream(inFile, false);
  3. ParameterBlock pb = new ParameterBlock();
  4. pb.add(s);
  5. PlanarImage img = JAI.create("BMP", pb);
  6. OutputStream outFile = new FileOutputStream("E:/temp/photos/toto.jpg" );
  7. JPEGEncodeParam encodeParam = new JPEGEncodeParam();
  8. encodeParam.setQuality(0.75f);
  9. ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG", outFile, encodeParam);
  10. encoder.encode(img);
  11. inFile.close();
  12. outFile.close();


ou en 1 ligne pour le fun

Code :
  1. ImageCodec.createImageEncoder("JPEG", new FileOutputStream("E:/temp/photos/toto.jpg" ), new JPEGEncodeParam(){{setQuality(0.75f);}}).encode(JAI.create("fileload", new ParameterBlock().add("E:/temp/photos/toto.bmp" )));


Message édité par benou le 25-06-2003 à 21:27:29

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 25-06-2003 à 23:22:18    

Marchi pour tout je vais tester :jap:


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 26-06-2003 à 08:51:23    

benou a écrit :

ton bonheur est là : http://java.sun.com/products/java- [...] nload.html /!\ le lien, pas la combo. Nécessite un enregistrement
là : http://java.sun.com/products/java- [...] OC.fm.html TRES TRES BON !!
et là : http://java.sun.com/products/java- [...] index.html javadoc ... indispensable
 
conclusion :  

Code :
  1. InputStream inFile = new FileInputStream("E:/temp/photos/toto.bmp" );
  2. SeekableStream s = SeekableStream.wrapInputStream(inFile, false);
  3. ParameterBlock pb = new ParameterBlock();
  4. pb.add(s);
  5. PlanarImage img = JAI.create("BMP", pb);
  6. OutputStream outFile = new FileOutputStream("E:/temp/photos/toto.jpg" );
  7. JPEGEncodeParam encodeParam = new JPEGEncodeParam();
  8. encodeParam.setQuality(0.75f);
  9. ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG", outFile, encodeParam);
  10. encoder.encode(img);
  11. inFile.close();
  12. outFile.close();


ou en 1 ligne pour le fun

Code :
  1. ImageCodec.createImageEncoder("JPEG", new FileOutputStream("E:/temp/photos/toto.jpg" ), new JPEGEncodeParam(){{setQuality(0.75f);}}).encode(JAI.create("fileload", new ParameterBlock().add("E:/temp/photos/toto.bmp" )));




 
D'ailleurs, au passage, tu la trouves pas bizarrement faite cette librairie benou ?  
Toutes ces chaines de caractères, tous ces paramètres plus ou moins vagues (avec les ParameterBlocks, si j'me rappelles bien). En principe, une librairie bien faite, on arrive plus ou moins à l'utiliser juste avec le Javadoc. Avec JAI c'est même pas la peine d'essayer. La javadoc est reléguée à une utilité carrément secondaire. J'trouve ça étonnant sachant que c'est un produit Sun.
 
EDIT : cela mis à part, JAI est très bien : elle permet de faire de tas de trucs et est rapide (elle peut même fonctionner en mode natif pour les transformations d'images).


Message édité par El_gringo le 26-06-2003 à 08:53:49
Reply

Marsh Posté le 26-06-2003 à 08:51:23   

Reply

Marsh Posté le 26-06-2003 à 09:01:35    

C'est vrai que c'est assez déroutant ...
C'est la 1ere API du genre que je vois...
 
de toute façon, avant que je trouve la doc (le 2e lien), j'arrivais à rien faire !! Et elle est bien planquée cette doc :/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 26-06-2003 à 09:11:05    

benou a écrit :

C'est vrai que c'est assez déroutant ...
C'est la 1ere API du genre que je vois...
 
de toute façon, avant que je trouve la doc (le 2e lien), j'arrivais à rien faire !! Et elle est bien planquée cette doc :/
 


 
Ben, c'est crade, tout simplement !
Moi j'ai eu tout de suite la 2nde doc. Mais heureusement, parce qu'en ne voyant QUE la javadoc, tu dois vraiment prendre peur.

Reply

Marsh Posté le 26-06-2003 à 09:29:25    

ouais, je sais pas trop pkoi ils ont fait cette API de cette façon là. Surement pour éviter d'avoir trop d'objets ... mais c'est pas vraiment une bonne raison ...
 
en passant, y a un truc que j'aime pas dans JAI : quand tu ouvres une image comme je le fais dans mon 2e code (en passant par le nom de fichier, pas par un flux), le fichier reste ouvert ! :/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 26-06-2003 à 10:13:15    

benou a écrit :


en passant, y a un truc que j'aime pas dans JAI : quand tu ouvres une image comme je le fais dans mon 2e code (en passant par le nom de fichier, pas par un flux), le fichier reste ouvert ! :/


 
Ha ouais... C'est pas top ça. Mieux vaut passer par les flux.

Reply

Marsh Posté le 26-06-2003 à 10:30:15    

y a peut être un moyen de le fermer puisque l'image doit garder une référence sur le flux (il est aps lu tout de suite), mais je ne sais pas comment ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed