2010-08-24 21 views
0

i a une instance de BufferedImage: (seulement un exemple)puis-je obtenir l'image originale de BufferedImage?

BufferedImage image = ImageIO.read(new URL("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png")); 

maintenant, je ne sais utiliser

ImageIO.write(image,"jpg", file); //or ImageIO.write(image,"png", file); 

pour enregistrer cette BufferedImage dans un fichier, mais ce fichier est zipée, pas égal d'origine taille de l'image.

Puis-je obtenir l'image originale ByteArray ou OutputStream à partir de l'instance BufferedImage?

Répondre

2

En résumé: non.

Java convertit les images en une représentation interne et convertit les fichiers en lecture et en écriture. Votre meilleur pari sera de lire les fichiers dans un tableau d'octets (ou dans un fichier temporaire), créer l'image à partir de là. et lors de l'enregistrement du fichier, revenez à l'original bytearray ou au fichier temporaire.

+0

vraiment? si triste :( – Koerr

0
public static Image toImage(BufferedImage bufferedImage) { 
    return Toolkit.getDefaultToolkit().createImage(bufferedImage.getSource()); 
} 
+0

mais comment enregistrer une image dans un fichier? comme aussi utiliser 'ImageIO.write' http://snipplr.com/view/9891/store-image-to-file/ – Koerr

+0

Eh bien, il n'y a aucun moyen d'utiliser' Image' avec 'ImageIO.write'. Au lieu de 'ImageIO' vous pouvez utiliser la suggestion de Peter Tillemans –