Форум: "Media";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Внизкак с помощью 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 вся ветка
Форум: "Media";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c