est-il un moyen d'obtenir la dimension d'une image sans avoir à lire tout le fichier ?
URL url=new URL(<BIG_IMAGE_URL>);
BufferedImage img=ImageIO.read(url);
System.out.println(img.getWidth()+" "+img.getHeight());
img=null;
Merci
est-il un moyen d'obtenir la dimension d'une image sans avoir à lire tout le fichier ?
URL url=new URL(<BIG_IMAGE_URL>);
BufferedImage img=ImageIO.read(url);
System.out.println(img.getWidth()+" "+img.getHeight());
img=null;
Merci
ImageInputStream in = ImageIO.createImageInputStream(resourceFile);
try {
final Iterator<ImageReader> readers = ImageIO.getImageReaders(in);
if (readers.hasNext()) {
ImageReader reader = readers.next();
try {
reader.setInput(in);
return new Dimension(reader.getWidth(0), reader.getHeight(0));
} finally {
reader.dispose();
}
}
} finally {
if (in != null) in.close();
}
Grâce à sfussenegger pour la suggestion
À L'Aide De ImageReader.getHeight(int) et ImageReader.getWidth(int) normalement ne lit l'en-tête d'image (je suis à la recherche d'JDK6 sources). Donc ImageReader est probablement le meilleur choix.
Vous aurez à chercher en ImageReader.getImageMetadata()
. Malheureusement, La Java de l'Image de l'API n'est pas du tout facile à utiliser.
Vous pouvez trouver des descriptions des formats de métadonnées dans la documentation du paquet d' javax.imageio.metadata
.
Il y a des bibliothèques tierces qui sont plus faciles à utiliser, tels que MediaUtil (dernière mise à jour il y a 3 ans, mais il a bien fonctionné pour moi).
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.