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

Вниз

Как можно сделать ScreenShot быстрее   Найти похожие ветки 

 
Morg   (2004-02-25 19:33) [0]

Делаю ScreenShot и сохраняю в stream, при этом комп зависает на 1-2 сек.
Есть ли способ сделать ScreenShot быстрее ???
Я делаю так:

 bm := TBitMap.Create;
 bm.Width := Screen.Width;
 bm.Height := Screen.Height;
 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(stream1);
 JpegIm.Destroy;
 bm.Destroy;


 
miek ©   (2004-02-25 23:37) [1]

Попробуй 1) Добавить присвоение bm.pixelformat чего-то осмысленного перед BitBlt
2) Ну кто ж делает скриншоты в JPG??? Сохраняй в BMP, и никаких проблем


 
VMcL ©   (2004-02-26 01:10) [2]

>>miek ©  (25.02.04 23:37) [1]

А почему бы и не в JPG? Cохраняем в BMP, а в JPG конвертируем уже в отдельной кодовой нити.


 
Morg   (2004-02-26 12:30) [3]

>>miek 1) Добавить присвоение bm.pixelformat чего-то осмысленного перед BitBlt

Спасибо.
bm.PixelFormat:= pf32bit;
Так гораздо быстрее.
Может еще как-нибудь можно выиграть в скорости ???



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

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

Наверх




Память: 0.47 MB
Время: 0.057 c
14-1082666702
RealRascal
2004-04-23 00:45
2004.05.16
Вон из памяти


3-1082484394
I.Ru.Ru
2004-04-20 22:06
2004.05.16
Связывание одной дочерней таблицы с двумя родительскими


7-1080549868
Ivolg
2004-03-29 12:44
2004.05.16
Прехват клавишь: Alt ,Ctrl и Delete


11-1069445126
DDA
2003-11-21 23:05
2004.05.16
Аналог FileSetDate на KOL e


6-1080234424
rezya
2004-03-25 20:07
2004.05.16
Проблема с неблокирующими сокетами.