En écrivant un programme qui enregistre des images sur Internet, certaines images finissent partiellement en gris. Ou bien c'est juste vraiment l'icône qui est grise car si j'ouvre l'image ce n'est pas du tout gris.L'image enregistrée à partir de l'URL est partiellement grisée
Voici la méthode que j'utiliser pour enregistrer l'image:
public static void saveImage(String imageUrl, String destinationFile) throws IOException{
URL url = new URL(imageUrl);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(destinationFile);
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
is.close();
os.close();
}
Je crois que le problème est que Im fermer les flux avant que l'image a été entièrement écrit. Est-il possible de vérifier si c'est fait ou quelque chose?
Le code semble correct. Que voulez-vous dire par "l'icône"? Pourriez-vous servir l'image/l'icône avant qu'elle ne soit complètement écrite? Vous voulez attendre que cette méthode saveImage soit terminée. – Thilo