Bonjour à tous,
je suis actuellement sur un projet de traitement vidéo. Ce projet avance plutôt mais je reste coincé sur l'acquisition des pixels.
Je viens tout juste de passer une étape. J'ai utilisé une fonction (GetCurrentImage(long the format, VARIANT* Buffer, long* theBufferSize)) qui normalement me permet d'aller chercher une image BMP dans le flux MJPEG de la vidéo. Cette image est normalement stocké dans Buffer.
Donc voilà, j'ai ma variable Buffer de type VARIANT et la longueur de l'image theBufferSize de type long, mais je ne sais pas comment obtenir à partir de cela, mon image sous la forme d'un tableau à deux dimensions (correspondant aux pixels sur x et y, résolution 640x480).
Quelqu'un aurait-il une suggestion? (ou un exemple de code, ce serait plus facile pour comprendre)
Voici la définition de la structure VARIANT:
-------------------------------------------------------------------------------------------
struct
tagVARIANT
{
union
{
struct __tagVARIANT
{
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union
{
LONGLONG llVal;
LONG lVal;
BYTE bVal;
SHORT iVal;
FLOAT fltVal;
DOUBLE dblVal;
VARIANT_BOOL boolVal;
_VARIANT_BOOL bool;
SCODE scode;
CY cyVal;
DATE date;
BSTR bstrVal;
IUnknown *punkVal;
IDispatch *pdispVal;
SAFEARRAY *parray;
BYTE *pbVal;
SHORT *piVal;
LONG *plVal;
LONGLONG *pllVal;
FLOAT *pfltVal;
DOUBLE *pdblVal;
VARIANT_BOOL *pboolVal;
_VARIANT_BOOL *pbool;
SCODE *pscode;
CY *pcyVal;DATE *pdate;
BSTR *pbstrVal;
IUnknown **ppunkVal;
IDispatch **ppdispVal;
SAFEARRAY **pparray;
VARIANT *pvarVal;
PVOID byref;
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
ULONGLONG ullVal;
INT intVal;
UINT uintVal;
DECIMAL *pdecVal;
CHAR *pcVal;
USHORT *puiVal;
ULONG *pulVal;
ULONGLONG *pullVal;
INT *pintVal;
UINT *puintVal;
struct __tagBRECORD
{
PVOID pvRecord;
IRecordInfo *pRecInfo;
} __VARIANT_NAME_4;
} __VARIANT_NAME_3;
} __VARIANT_NAME_2;
DECIMAL decVal;
} __VARIANT_NAME_1;
} ;
typedef VARIANT *LPVARIANT;
typedef VARIANT VARIANTARG;
typedef VARIANT *LPVARIANTARG;