Если поточнее то имеется поток фоток с фотокамеры идущих с определенной частотой я так понял в формате DIB. Затем вот с помощью этой функции
void DrawMap(HDC hdc0, BYTE *D, int W, int H, int Z)
{
if (hdc0) {
HDC hdc1 = CreateCompatibleDC(hdc0);
if (hdc1) {
BITMAPINFO *bmpI = (BITMAPINFO*)malloc(sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD)*256);
bmpI->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmpI->bmiHeader.biWidth = W;
bmpI->bmiHeader.biHeight = H;
bmpI->bmiHeader.biPlanes = 1;
bmpI->bmiHeader.biBitCount = 8;
bmpI->bmiHeader.biCompression = BI_RGB;
bmpI->bmiHeader.biSizeImage = 0;
bmpI->bmiHeader.biXPelsPerMeter =
bmpI->bmiHeader.biYPelsPerMeter = 0;
bmpI->bmiHeader.biClrUsed =
bmpI->bmiHeader.biClrImportant = 256;
RGBQUAD *pRGB = (RGBQUAD *)((BYTE*)bmpI + sizeof(BITMAPINFOHEADER));
for (int i = 0; i 256; i++) {
pRGB[i].rgbBlue = pRGB[i].rgbGreen = pRGB[i].rgbRed = i;
pRGB[i].rgbReserved = 0;
}
HBITMAP hbmp = CreateDIBitmap(hdc0, (BITMAPINFOHEADER*)bmpI, CBM_INIT, D, bmpI, DIB_RGB_COLORS), hbmp0;
if (hbmp) {
hbmp0 = (HBITMAP)SelectObject(hdc1, hbmp);
SetStretchBltMode(hdc0, HALFTONE);
StretchBlt(hdc0, 0, 0, (W*Z)/100, (H*Z)/100, hdc1, 0, 0, W, H, SRCCOPY);
SelectObject(hdc1, hbmp0);
DeleteObject(hbmp);
}
free(bmpI);
DeleteDC(hdc1);
}
}
}
эти данные преобразовываются в BMP формат и выводятся на форму.
Потом я вот таким образом
TPicture *p=new TPicture;
HWND hwnd = CamForm->Handle;
HDC hdc = CamForm->Canvas->Handle;
TCanvas *C=new TCanvas;
C->Handle=hdc;
int w=CamForm->Width;;
int h=CamForm->Height;
p->Bitmap->Width=w;
p->Bitmap->Height=h;
p->Bitmap->Canvas->CopyMode=cmSrcCopy;
p->Bitmap->Canvas->CopyRect(TRect(0,0,w,h),C,TRect(0,0,w,h));
ReleaseDC(hwnd,hdc);
delete C;
получаю рисунки с формы который хранится в переменной p. И из этих рисунков хочу получить видео ну пусть даже в формате AVI.
В общем вопрос такой КАК ИЗ КАДРОВ - КАРТИНОК ПОЛУЧИТЬ ВИДЕО ФОРМАТА AVI?