2011-05-17 4 views
1

J'ai une image sur le disque qui est un fichier jpg. Je veux convertir et enregistrer comme png et supprimer le jpg d'origine. Quel est le meilleur moyen de le faire en Java?java save jpg as png

String justNameJpg = "something.jpg"; 
String justNamePng = ImageEditor.GetImageNameNoExtension(justName) + "." + "png"; 
java.awt.image.BufferedImage bufferedImage = ImageIO.read(new File(folder, justNameJpg)); 
ImageIO.write(bufferedImage, "png", new File(folder, justNamePng)); 

Répondre

4

Si vous souhaitez utiliser ImageIO cela devrait fonctionner:

ImageIO.write(image, "png", new File("new output file name")); 
+3

Ça fait mal de ne jamais vérifier que Le format .png est supporté en vérifiant d'abord qu'il est présent dans le tableau retourné par 'ImageIO.getWriterFormatNames()' –

0

La meilleure façon est d'appeler l'outil externe « ImageMagick ». Ce n'est pas une blague. Je le fais comme ça dans mon application, parce que c'est beaucoup plus rapide et plus fiable que tout ce que vous obtenez en Java.

0

ImageMagick est une bonne option, de @Daniels réponse. Si vous voulez convertir les thumbails en code, j'ai eu beaucoup de chance avec

http://code.google.com/p/thumbnailator/

il prend en charge la modification du format de fichier pour vous, à partir de la page d'exemple:

OutputStream os = ...; 

Thumbnails.of("large-picture.jpg") 
     .size(200, 200) 
     .outputFormat("png") 
     .toOutputStream(os);