1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
/* donnees est la socket sur laquelle on recoit les images en provenance d'un serveur */
BufferedReader in = new BufferedReader(new InputStreamReader
(donnees.getInputStream()));
String chaineLue = new String ();
int num_image = 0; // numero de l'image
int taille = 0; // Taille de l'image
int nbLus = 0; // nb d'octets lus
chaineLue = in.readLine();
num_image = Integer.parseInt(chaineLue);
chaineLue = in.readLine();
taille = Integer.parseInt ( chaineLue );
char [] tab = new char [taille];
nbLus = in.read ( tab, 0, taille );
/* si on a pa lu ce qu'il faut, on doit relire */
while ( nbLus < taille ) {
nbLus += in.read ( tab, nbLus, taille - nbLus);
}
byte[] imageData = new byte[taille];
imageData = toByteArray(tab); // methode qui cast char[] en byte[]
InputStream is = new ByteArrayInputStream(imageData);
BufferedImage image = ImageIO.read(is); // genere l'exception en question
Graphics g = image.createGraphics();
g.drawImage(image,0,0,null);
g.dispose(); |
Partager