billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 2014
-
8 mars 2005 à 12:09
soussa510
Messages postés4Date d'inscriptionmardi 22 novembre 2005StatutMembreDernière intervention22 décembre 2005
-
14 déc. 2005 à 21:14
Alors, voila mon titre est pas trop explicite mais par ce message, je vais essayer de l'être.
J'ai un code qui réceptionne une image par une connexion TCP/IP.
L'image est envoyer sur la forme d'un tableau de bytes. Jusque là ok !
J'ai donc fabriquer à partir de là un fichier ouvert en écriture
binaire. Et en y injectant le tableau, je retrouve mon image cool !!!
Ou est la question ?
La voila, a partir de ce fichier, je fabrique un objet image par
l'opération Image.FromFile et ainsi , je peu travailler avec.
Seulement, le pb est que, avec ma méthode, je dois passer par la
sauvegarde sur mon disque de l'image.
J'aimerais donc savoir s'il est possible de créer directement un objet
image à partir d'un tableau de bytes ( byte[] Buffeur). J'ai vu que la
classe image pouvait accepter la méthode :
Image monImage = Image.FromStream(...) et la je c pas quoi
mettre , j'ai tenter directement le buffer mais ca marche pas car il
faut un stream (je c pas ce que c).
Je voudrais donc obtenir un objet image ou sinon un objet bitmap ou un
objet graphics ( à vous de décider, c'est pareil pour moi à partir de
ça je me débrouille, le mieux serait un graphics mais bon ) à partir
d'un Buffeur contenant un tableau de byte[].
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 8 mars 2005 à 15:34
voila le code que j'ai implémente pour superposer deux images .gif l'une sur
l'autre sachant que la première provient d'un flux d'octets (tableau de
byte[]) :
//La fonction recoit l'image sur forme de tableau de bytes[] ainsi que la taille de cette image
//Elle renvoie l'image superposée
byte[] AddMarkerToImage(byte[] ImageBuffer, int ImageLength)
{
byte[] ImageConvert;
MemoryStream ImageStream = new
MemoryStream(ImageBuffer,0,ImageLength);
Bitmap IMap = new Bitmap(Image.FromStream(ImageStream));
ImageStream.Close();
Bitmap IMarker = new
Bitmap(Image.FromFile(_ImageMarker+".gif"));
IMarker.MakeTransparent(Color.White);
Graphics GrMap =
Graphics.FromImage(IMap);
int X_Map,Y_Map;
X_Map =
(IMap.Width/2)-(IMarker.Width/2);
Y_Map =
(IMap.Height/2)-(IMarker.Height/2);
GrMap.DrawImage(IMarker,X_Map,Y_Map);
GrMap.Dispose();
//ENLEVER LES COMMENTAIRES POUR STOCKER SUR LE DISQUE