Probleme de conversion d'un tableau byte[] en BufferedImage

ouassit Messages postés 21 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 18 décembre 2008 - 15 mars 2006 à 17:33
ouassit Messages postés 21 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 18 décembre 2008 - 15 mars 2006 à 21:35
bonjour
bon je vais expliquer mon probleme ; je veux envoyer un objet de type BufferedImage en resaue utlisant une connexnio UDP ; j'ai pu convertir mon objet en un byte[] et je l'ai decouper et l'envoyer vace des packets UDP ; au niveau client je rassemble mon tableau et pour l'afficher je trouve des problemes rien m'affiche. voici le code de serveur et de client :


// au niveau serveur

public static byte[] getBytes(BufferedImage bim){
ByteArrayOutputStream out= new ByteArrayOutputStream();
try{

BufferedImage buffImg = new BufferedImage(bim.getWidth(null), bim.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g = buffImg.createGraphics();
g.drawImage(bim, null, null);

//encodes bi as a JPEG data stream

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(buffImg);
param.setQuality(1.0f, false);
encoder.setJPEGEncodeParam(param);
encoder.encode(buffImg);

}
catch(IOException e){
System.err.println(e.getMessage());
}
System.out.println("taille retourné :"+out.toByteArray().length);
return out.toByteArray();
}

// code de convertion niveau client

public void dessinerImage(byte[] imgB){
int w=800,h=600;
BufferedImage buffImage=new BufferedImage(w,h,BufferedImage.TYPE_INT_BGR);
int[] rgbs=new int[w*h*3];
for (int i = 0; i < imgB.length/3-1; i++) {
rgbs[i] = ((((imgB[3 * i] & 0xFF) << 8) | imgB[3 * i + 1] & 0xFF) << 8) | imgB[3 * i + 2] & 0xFF;
}
buffImage.setRGB(0, 0, w, h, rgbs, 0, w);
this.getGraphics().drawImage(buffImage,0,0,this);
}

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
15 mars 2006 à 20:46
Salut,



utilise Toolkit.getDefaultToolkit().createImage(byte[]);

WORA
0
ouassit Messages postés 21 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 18 décembre 2008
15 mars 2006 à 21:35
le probleme c pas de trouver le byte[] à travaers le BufferedImage , mais c l'inverse ; apres envoyer le tableau de byte[] j'arrive pas à l'affihcer autant que image dans un JComponent
0
Rejoignez-nous