Transfert d'image, résultat tout noir
Bonjour,
J'ai un soucis avec le fait de transférer des images en les transformant en un tableau de byte.
Le résultat fonctionne à moitié car je récupère bien les bonnes dimensions des images mais elles sont noires.
Merci si vous avez la solution ;)
Le code pour transformer une image en byte[]:
Code:
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 31
| public byte[] getPhoto(String nom) {
Image img = img;
/** On crée la nouvelle image */
BufferedImage bufferedImage = new BufferedImage(
img.getWidth(null),
img.getHeight(null),
BufferedImage.TYPE_INT_BGR );
Graphics g = bufferedImage.createGraphics();
g.drawImage(img,0,0,null);
g.dispose();
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
ImageIO.write(bufferedImage, "jpg", out);
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte buffer[] = out.toByteArray();
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return (buffer); |
Ici on appelle la méthode pour récupérer les images:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| String listPhoto[] = user.getListePhoto();
for(String s : listPhoto)
{
byte img[] = user.getPhoto(s);
InputStream in = new ByteArrayInputStream(img);
BufferedInputStream bis=new BufferedInputStream(in);
// lire l'image.
BufferedImage imageRecup = ImageIO.read(bis);
// inserer dans le panel
this.fen.corbaAddImage(s, imageRecup);
} |
Et l'affichage:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public ImagePanel(String nom, BufferedImage img)
{
this.description = nom;
BufferedImage bufferedImage = new BufferedImage ( img.getWidth(null),
img.getHeight(null),
BufferedImage.TYPE_INT_BGR );
this.img = bufferedImage;
setPreferredSize(new Dimension(200, 200));
setLayout(null);
validate();
repaint();
} |