D’apres ce que j’ai compris sur la MSDN, tu doit faire un premier appel à GetCurrentImage avec 0 pour le deuxième paramettre, ca te permettra de connaitre la taille du buffer à allouer lors du second appel.
Bon euh … je vais modifier ton code C# en C paske je code pas en C# :
[cpp]
int bfr, sz;
int[] img;
int x, y, pp=10;
int rr, gg, bb;
Color col;
// ici bfr contiendra la taille du buffer à allouer
_BasicVideo.GetCurrentImage(ref bfr, 0);
// alloue ici un buffer de la taille bfr (unsigned char *)
// Bitmap bmp = new Bitmap(_BasicVideo.VideoWidth, _BasicVideo.VideoHeight);
unsignec char * buffer = malloc(bfr);
if (buffer == 0)
return -1;
sz = _BasicVideo.VideoHeight * _BasicVideo.VideoWidth + 10;
bfr = sz * 4;
img = new int[sz];
_BasicVideo.GetCurrentImage(ref bfr, out buffer);
// je sais pas comment on gere les params en C#
SetDIBits()
oan.
J’ai aussi besoin de savoir comment faire pour capturer une image d’une vidéo mais j’avoue que hors c# en managé j’ai du mal.
Est ce que quelqu’un peut m’expliquer comment faire? même en prenant la version de copie pixel par pixel je n’ai rien a la fin, sinon une image toute noire. J’ai l’impression de ne rien récupérer en sortie de mon appel à getcurrentimage().
Comment le vérifier?
(Je sais que ce sujet date mais comme il correspond pile à ce que je cherche…)