Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Корректное снятие видео при копировании образа экрана   Найти похожие ветки 

 
dmitry_12_08_74   (2008-03-11 14:26) [0]

Если во время копирования образа экрана запущен Media Palyer во время показа им видео, на снимке образа экрана вместо кадра из фильма останется чёрное пустое место. Как корректно скопировать кадр?

Сейчас копирую образ экрана с помощью процедуры из библиотеки jcl_&_jvcl, модуль JclGraphics:

procedure ScreenShot(bm: TBitmap; Left, Top, Width, Height: Integer; Window: THandle); overload;
var
 WinDC: HDC;
 Pal: TMaxLogPalette;
begin
 bm.Width := Width;
 bm.Height := Height;

 // Get the HDC of the window...
 WinDC := GetDC(Window);
 if WinDC = 0 then
   raise EJclGraphicsError.CreateRes(@RsNoDeviceContextForWindow);

 // Palette-device?
 if (GetDeviceCaps(WinDC, RASTERCAPS) and RC_PALETTE) = RC_PALETTE then
 begin
   FillChar(Pal, SizeOf(TMaxLogPalette), #0);  // fill the structure with zeros
   Pal.palVersion := $300;                     // fill in the palette version

   // grab the system palette entries...
   Pal.palNumEntries := GetSystemPaletteEntries(WinDC, 0, 256, Pal.palPalEntry);
   if Pal.PalNumEntries <> 0 then
     bm.Palette := CreatePalette(PLogPalette(@Pal)^);
 end;

 // copy from the screen to our bitmap...
 BitBlt(bm.Canvas.Handle, 0, 0, Width, Height, WinDC, Left, Top, SRCCOPY);

 ReleaseDC(Window, WinDC);        // finally, relase the DC of the window
end;


 
DVM ©   (2008-03-11 14:40) [1]

там оверлей используется поэтому и не получается



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.053 c
2-1274423388
pro_xaoc
2010-05-21 10:29
2010.08.27
Какой код лучше?


2-1266841096
darts116
2010-02-22 15:18
2010.08.27
Рисуем в Delphi


4-1237182519
Cypher
2009-03-16 08:48
2010.08.27
Управление чужим окном


15-1271237992
Сергей М.
2010-04-14 13:39
2010.08.27
О виртуальной мыши


2-1271611512
Mishka
2010-04-18 21:25
2010.08.27
Отступ в начале DBEdit