Вниз
Скачать: CL | DM;

как с помощью DelphiX сделать screenshot   Найти похожие ветки 

← →
Novichok   (2004-11-24 14:17) [0]

как с помощью DelphiX сделать screenshot ?


← →
Mihey_temporary ©   (2004-11-24 20:41) [1]

А зачем именно DelphiX?


← →
Novichok   (2004-11-25 02:13) [2]

Моя задача это быстро фоткать экран, где то по 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 на прямую без посторонних компонентов


← →
Sapersky   (2004-11-25 10:40) [3]

Во-первых, создавать битмап нужно заранее. Во-вторых, если не указывать конкретный пиксельный формат (bm.PixelFormat), то он должен создаваться с форматом рабочего стола и копироваться быстрее.
С DirectDraw, если нужно получить битмап в системной памяти (передать куда-нибудь, записать на диск) - не быстрее. Быстрее только при копировании видео-видео (если использовать полученный скриншот для рисования чего-нибудь через тот же DirectDraw).


← →
Novichok   (2004-11-25 13:27) [4]

Есть ли вообще способ скопировать экран быстрее, чем я это делаю, или хотя бы без подвисаний. Я почему-то был уверен, что через DirectX это происходит быстрее


← →
Novichok   (2004-11-25 14:04) [5]

Главный стопор возникает, когда я переделываю 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;



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
8-1101120932
DDDeN
2004-11-22 13:55
2005.03.13
Ищу заголовки для работы с DirectSound


9-1103402623
Kind
2004-12-18 23:43
2005.03.13
Посмотрите на мою ИГРУшечку :)


14-1108960327
begin...end
2005-02-21 07:32
2005.03.13
С Днём рождения! 21 февраля


3-1107933130
Scorpio
2005-02-09 10:12
2005.03.13
ADOTable - ошибка при подключении


1-1109358036
KyRo
2005-02-25 22:00
2005.03.13
Ключ в реестре




   Наверх