sebseb42
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
4 avril 2006 à 11:45
using System.IO;
...
public Bitmap BufferToImage(byte[] buffer)
{
MemoryStream ms = new MemoryStream(buffer);
Bitmap bmp = new Bitmap(ms)
return (bmp);
}
ceic fonctionne parfaitement si tant est que ton buffer est formater correctement et qu'il soit complet (qu'il contienne le header du format de fichier)
par exemple pour un fichier bmp, ceci fonctionne parfaitement :
byte[] buffer = new byte
[(320 * 240 * 3) + 54];
byte[] header = new byte
[] {
0x42, 0x4D, 0x36, 0x84, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00,
0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xF0, 0x00,
0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
Array
.Copy(header, buffer, header.Length);
MemoryStream ms = new MemoryStream
(buffer);
Bitmap img = new Bitmap
(ms);
ms.Close();
pictureBox1.Image = img;
on créer un buffer de la taille du fichier la place pour les 320 x 240 pixels, qui fonct chacun 3 octets (R, G et B) + 54 octets pour la taille de l'entete du format de fichier
on rempli le header (la j'ai mis en dure pour que tu puisse executer rapidement et constater le fonctionnement) mais il est tres facile de le generer automatiquement en fonction de l'image a instancier.
ensuite on copie le header dans le buffer (qui represente l'image finale) et c'est partit. On aura une image toute noire, mais pas d'exception :)
voila, j'espere avoir pu t'aider.