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);
}