Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Снимок экрана [D6, Win2k, WinXP]


Страницы:   1 2 3

Nic2 ©   (2004-09-22 17:41:00) 

Здравствуйте Мастера.
Пишу программу, которая передает снимки моего экрана на др. машину по сети и там их отображает (короче просмотр экрана удаленной машины). Делать это пытаюсь 24 кадра в сек., пакуя снимки в JPEG Проблема такая: упаковка в JPEG длится долго, а по сему получается максимум 8 кадров в секунду. Можно ли как-то увеличить кол-во кадров в секунду.
Код:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
procedure TFORM1.CopyScrMy();
var
ScrBitmap: TBitmap;
jpg: TJPEGImage;
begin
    DC := GetDC(0);
    BInfo.bmiHeader.biSize := sizeof(tagBITMAPINFOHEADER);
    BInfo.bmiHeader.biWidth := 1024;
    BInfo.bmiHeader.biHeight := 768;
    BInfo.bmiHeader.biPlanes := 1;
    BInfo.bmiHeader.biBitCount := 24;
    BInfo.bmiHeader.biCompression := BI_RGB;
    binfo.bmiHeader.biSizeImage:=0;
    ScrBitmap := TBitmap.Create();
    ScrBitmap.Handle := CreateDIBSection(Canvas.Handle, BInfo, DIB_RGB_COLORS, Scr, 0, 0);
    bitblt(ScrBitmap.Canvas.Handle,0,0,1024,768,DC,0,0,srccopy);
    ScrBitmap.ScanLine[1];
try
  if not ScrBitmap.Empty then
   begin
    ms:=TMemoryStream.Create;
    jpg := TJPEGImage.Create;
    jpg.Performance:=jpBestspeed;
    jpg.PixelFormat:=jf8Bit;
    jpg.Scale:=jsHalf;
    jpg.CompressionQuality:=50;
    jpg.Compress;
    jpg.Assign(ScrBitmap);
    ScrBitmap.Assign(jpg);
    jpg.SaveToStream(ms);
    ms.Position:=0;
    try
     Socket.PostIt(ms);
    except
    end;
   end;
finally
 ms.Clear;
 b.Free;
 jpg.Free;
 DeleteDC(DC);
 SCRBitmap.Free;
end;
end;
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Заранее спасибо.


Mihey_temporary   (2004-09-23 15:26:00) [41]

Попробуй использовать глобальные переменные, например, для Jpg, т.е. не создавать и удалять каждый раз.


Анонимщик   (2004-09-23 15:24:00) [42]

А сколько кадров ты в состоянии сжать за секунду?


Multy   (2004-09-23 14:50:00) [43]

А почему не воспользоватся уже готовым совтом?


WondeRu   (2004-09-23 13:02:00) [44]

а пробуй просто упаковывать! используй zlib (F1 in Delphi)


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо