![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PixelFormat у AVI кадра [D7, WinXP]
Ozone © (2004-11-29 12:04:00)Как получить PixelFormat кадра в AVI файле.
Пробовал так:
function GetBitmap(BITMAP: PBITMAPINFOHEADER): TBitmap;
var
bmpDC : HDC;
hBMP : HBITMAP;
bits : PChar;
bmp: TBitmap;
begin
bmp := TBitmap.Create;
bmp.Height := BITMAP.biHeight;
bmp.Width := BITMAP.biWidth;
bits := Pointer(Integer(BITMAP) + SizeOf(TBITMAPINFOHEADER));
bmpDC := CreateDC('Display', nil, nil, nil);
try
hBMP := CreateDIBitmap( bmpDC,
BITMAP^,
CBM_INIT,
bits,
PBITMAPINFO(BITMAP)^,
DIB_RGB_COLORS);
finally
DeleteDC(bmpDC);
end;
bmp.Handle := hBMP;
Result := bmp;
end;
var
VideoStream: IAVIStream;
AVIFrame: IGetFrame;
BITMAP: PBITMAPINFOHEADER;
Bmp: TBitmap;
begin
{ ... }
AVIFrame := AVIStreamGetFrameOpen(VideoStream, nil);
BITMAP := AVIStreamGetFrame(AVIFrame, 0);
Bmp := GetBitmap(BITMAP);
try
// сдесь у Bmp.PixelFormat = pfDevice (всегда)
finally
Bmp.Free;
end;
Как быть? Подскажите...
Ozone (2004-11-29 12:31:00) [1]Проблема решена. Спасибо MBo.