Est il possible en faisant une seule connection au serveur de charger
une Image et de savoir si c'est un GIF ANIME ?
Actuellment je suis oblig=E9 de faire 2 requetes au serveur
Pour le gif anime
ImageInputStream stream =3D
ImageIO.createImageInputStream(tap.openStream());
Iterator readers =3D ImageIO.getImageReaders(stream);
if (!readers.hasNext())
throw new RuntimeException("no image reader found");
ImageReader reader =3D (ImageReader) readers.next();
reader.setInput(stream); // don't omit this line!
nimg =3D reader.getNumImages(true); // don't use false!
stream.close();
stream=3Dnull;
Et ensuite pour charger l'image
ImageIO.read(tap)
Cela peut il etre fait avec une seule requete au serveur ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Frederic Lachasse
On Aug 22, 8:45 am, phil89 wrote:
Bonjour
Est il possible en faisant une seule connection au serveur de charger une Image et de savoir si c'est un GIF ANIME ? Actuellment je suis obligé de faire 2 requetes au serveur
Pour le gif anime ImageInputStream stream = ImageIO.createImageInputStream(tap.openStream()); Iterator readers = ImageIO.getImageReaders(stream); if (!readers.hasNext()) throw new RuntimeException("no image reader found"); ImageReader reader = (ImageReader) readers.next(); reader.setInput(stream); // don't omit this line! nimg = reader.getNumImages(true); // don't use false ! stream.close(); stream=null;
Et ensuite pour charger l'image ImageIO.read(tap)
Cela peut il etre fait avec une seule requete au serveur ?
Oui, bien sûr. Au moins 2 solutions possibles:
1) Faire comme suggérer dans la JavaDoc de getNumImages(): ne pas appeler getNumImages(). A la place, appeler read() jusqu'à ce que la méthode lève l'exception IndexOutOfBoundsException
2) Lire le GIF dans un tableau de bytes, puis utiliser un ByteArrayInputStream pour lire et relire les mêmes données depuis la mémoire.
On Aug 22, 8:45 am, phil89 <pco...@infodev.fr> wrote:
Bonjour
Est il possible en faisant une seule connection au serveur de charger
une Image et de savoir si c'est un GIF ANIME ?
Actuellment je suis obligé de faire 2 requetes au serveur
Pour le gif anime
ImageInputStream stream =
ImageIO.createImageInputStream(tap.openStream());
Iterator readers = ImageIO.getImageReaders(stream);
if (!readers.hasNext())
throw new RuntimeException("no image reader found");
ImageReader reader = (ImageReader) readers.next();
reader.setInput(stream); // don't omit this line!
nimg = reader.getNumImages(true); // don't use false !
stream.close();
stream=null;
Et ensuite pour charger l'image
ImageIO.read(tap)
Cela peut il etre fait avec une seule requete au serveur ?
Oui, bien sûr. Au moins 2 solutions possibles:
1) Faire comme suggérer dans la JavaDoc de getNumImages(): ne pas
appeler getNumImages(). A la place, appeler read() jusqu'à ce que la
méthode lève l'exception IndexOutOfBoundsException
2) Lire le GIF dans un tableau de bytes, puis utiliser un
ByteArrayInputStream pour lire et relire les mêmes données depuis la
mémoire.
Est il possible en faisant une seule connection au serveur de charger une Image et de savoir si c'est un GIF ANIME ? Actuellment je suis obligé de faire 2 requetes au serveur
Pour le gif anime ImageInputStream stream = ImageIO.createImageInputStream(tap.openStream()); Iterator readers = ImageIO.getImageReaders(stream); if (!readers.hasNext()) throw new RuntimeException("no image reader found"); ImageReader reader = (ImageReader) readers.next(); reader.setInput(stream); // don't omit this line! nimg = reader.getNumImages(true); // don't use false ! stream.close(); stream=null;
Et ensuite pour charger l'image ImageIO.read(tap)
Cela peut il etre fait avec une seule requete au serveur ?
Oui, bien sûr. Au moins 2 solutions possibles:
1) Faire comme suggérer dans la JavaDoc de getNumImages(): ne pas appeler getNumImages(). A la place, appeler read() jusqu'à ce que la méthode lève l'exception IndexOutOfBoundsException
2) Lire le GIF dans un tableau de bytes, puis utiliser un ByteArrayInputStream pour lire et relire les mêmes données depuis la mémoire.