12
votes

Problème en utilisant imageio.read

OK, j'ai une image que j'essaie de lire. Le problème est que l'image.Lead (fichier) renvoie NULL.

File file = new File("C:\\images\\image1.jpg");
if(file.exists()){
    System.out.println("Image file exists.");
    BufferedImage originalImage = ImageIO.read(file);

}


2 commentaires

Étant donné que vos tags incluent «Applet», pensez-vous que je mentionnerais que si vous écrivez un applet qui permet de charger des images sur les disques de l'utilisateur final, vous serez probablement après une URL. Autres commentaires, Windows a probablement beaucoup de «magie» intégrée pour traiter des images non valides. Cela peut payer pour ouvrir le JPG dans un éditeur d'images de confiance et l'enregistrer sous forme de nouveau fichier. Cela pourrait corriger le problème (en supposant qu'il s'agisse d'une image invalide).


Et quels sont ces doubles slashes?


3 Réponses :


5
votes

des Javadocs pour imageIO.Read ()

retourne un bufferedimage à la suite de Décoder un fichier fourni avec un ImageReader choisi automatiquement parmi ceux actuellement enregistrés. Le fichier est enveloppé dans un imageInputStream . Si aucun enregistré ImageReader revendique pour pouvoir être capable de Lire le flux résultant, null est retourné.

Essayez de créer un imageInputStream , puis transmettez-le sur le imageIO.Read () méthode, au lieu d'envoyer le fichier lui-même.


1 commentaires

Je pense que son environnement d'environnement. J'essaie de migrer tout mon travail en un nouvel ordinateur portable. Je viens de tester le même code dans mon ordinateur portable précédent et ça marche bien. Je manque probablement des pots dans le dossier EXT. Je vais continuer à chercher. Merci pour votre réponse.



6
votes

OK depuis que j'ai changé d'ordinateurs portables, j'ai regardé mon ancien ordinateur portable et j'ai trouvé ce jar Jai-imageio.jar dans le JRE / EXT / LIB (je connais une mauvaise idée). Je l'ai déplacé à mon projet / lib et ça a fonctionné! Je suppose que ce jai-imageio.jar contient des lecteurs d'images supplémentaires.


0 commentaires

4
votes

génial, j'ai eu le même problème, dans lequel il soutient 24 formats d'image à Eclipse, mais n'utilisait que 12 formats d'image en invite de commande avec Maven. Une fois que j'ai placé jai_imageio.jar dans le chemin de test de Maven, Maven a commencé à prendre en charge 24 formats d'image.


1 commentaires

Vous pouvez également utiliser imageio.gedreaderFormatNames () pour obtenir tous les formats pris en charge par ImagerReaders dans votre environnement.