![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как с помощью DelphiX сделать screenshot [D6, WinXP]
Novichok © (2004-11-24 14:17:00)как с помощью DelphiX сделать screenshot ?
Novichok (2004-11-25 14:04:00) [1]Главный стопор возникает, когда я переделываю bm в jpeg,
Может можно как нить ускорить этот процесс, например сохранять screen сразу в Jpeg
ms:= TMemoryStream.Create;
bm := TBitMap.Create;
bm.Width := Screen.Width;
bm.Height := Screen.Height;
bm.PixelFormat:= pf32bit;
BitBlt(bm.Canvas.Handle, 0, 0,
bm.Width, bm.Height,
GetDC(0), 0, 0, SRCCOPY);
JpegIm := TJpegImage.Create;
JpegIm.Assign(bm);
JpegIm.CompressionQuality := 100;
JpegIm.Compress;
JpegIm.SaveToStream(ms);
JpegIm.Destroy;
bm.Destroy;
Novichok (2004-11-25 13:27:00) [2]Есть ли вообще способ скопировать экран быстрее, чем я это делаю, или хотя бы без подвисаний. Я почему-то был уверен, что через DirectX это происходит быстрее
Sapersky (2004-11-25 10:40:00) [3]Во-первых, создавать битмап нужно заранее. Во-вторых, если не указывать конкретный пиксельный формат (bm.PixelFormat), то он должен создаваться с форматом рабочего стола и копироваться быстрее.
С DirectDraw, если нужно получить битмап в системной памяти (передать куда-нибудь, записать на диск) - не быстрее. Быстрее только при копировании видео-видео (если использовать полученный скриншот для рисования чего-нибудь через тот же DirectDraw).
Novichok (2004-11-25 02:13:00) [4]Моя задача это быстро фоткать экран, где то по 5-10 раз в секунду. Если делать это так, то это долго и сильно нагружает комп, он даже на мгновение подвисает:
var
bm: TBitMap;
begin
bm := TBitMap.Create;
bm.Width := Screen.Width;
bm.Height := Screen.Height;
bm.PixelFormat:= pf32bit;
BitBlt(bm.Canvas.Handle, 0, 0,
bm.Width, bm.Height,
GetDC(0), 0, 0, SRCCOPY);
end;
А DelphiX вроде как позволяет работать с DirectDraw, а через него это в 10 раз быстрее.
Или может кто знает как это сделать на прямую, работая с DirectDraw на прямую без посторонних компонентов
Mihey_temporary (2004-11-24 20:41:00) [5]А зачем именно DelphiX?