Bonjour,
Je cherche a savoir comment je peux transmettre en parametre une image de type Bitmap en C# vers une fonction ecrite en C++.
J'ai beau chercher je vois pas trop comment faire :s
Si quelqu'un a une piste je suis preneur.
merci d'avance.
Version imprimable
Bonjour,
Je cherche a savoir comment je peux transmettre en parametre une image de type Bitmap en C# vers une fonction ecrite en C++.
J'ai beau chercher je vois pas trop comment faire :s
Si quelqu'un a une piste je suis preneur.
merci d'avance.
ben ça dépend, la fonction C++ accepte un bitmap sous quelle forme ? si c'est un handle HBITMAP, tu peux l'obtenir à partir de l'image avec la méthode GetHBitmap
En fait c'est bon j'ai trouver ma reponse.
mais je suis tombé sur un autre soucis.
Je tente maintenant de convertir un System.Drawing.Bitmap en IplImage , mon code fonctionne , mais mon image se retrouve retournée , elle n'est pas dans sa position initiale , et je ne comprend pourquoi , quelqu'un saurait-il pourquoi ?
de plus sur certaines images , les couleurs sont faussées :s
voici mon code :
merci d'avanceCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 IplImage *MaClass::ConvertBmpToIplImage(System::Drawing::Bitmap ^ bmpImage) { System::IO::MemoryStream ^ stream = gcnew System::IO::MemoryStream(); bmpImage->Save(stream, System::Drawing::Imaging::ImageFormat::Bmp); stream->Position = 0; cli::array<unsigned char, 1>^data = gcnew cli::array<unsigned char, 1>(stream->Length); stream->Read(data, 0, stream->Length); IplImage *img = cvCreateImage(cvSize(bmpImage->Width, bmpImage->Height), IPL_DEPTH_8U, 3); for (int i = 0; i < stream->Length, i++) img->imageData[i] = data[i]; return img; }
C'est bon je viens de comprendre pourquoi ca me fait ca ...
En temps normal sur une grande majorité de libs l'origine d'une image est en haut a gauche.
Ici non , l'origine est en BAS a gauche , du coup il faut que je remette tout ca dans l'ordre.