Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > видео с рабочего стола


Автор: Codegrammer 20.11.2009, 18:38
Есть 2 программы: сервер и клиент. Клиент передает информацию со своего рабочего стола серверу. Сервер ее отображает в pictureBox. 
При непрерывной передаче получается видео. Если делать так, то все тормозит 
Код

Bitmap bmp=new Bitmap(1028,1024);
Graphics gr=Graphics.FromImage(bmp);
gr.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
// дальше битмап декодируется в массив байтов и переводится по TCP-IP протоколу на сервер. 


Дело не в том, что Tcp медленный; тормоза+большая загрузка процессора (30% один клиент) даже без передачи по сети.
Что делать в такой ситуации? Может как-то по другому снимать скрин? Или есть компонент .Net для работы с видео?

Автор: LamerTM 21.11.2009, 10:54
Я бы попробовал снять скрин через GDI, и если надо его отобразить, то написал бы свой компонент юзающий GDI, и не юзающий GDI+. (Picturebox, класс Graphics - это всё GDI+, а значит фтопку их).

Добавлено через 2 минуты и 24 секунды
Ну или на C++ или Delphi это всё написать. smile

Автор: jonie 21.11.2009, 20:31
Codegrammer, может взять готовый клиент , работающий по VNC протоколу, и не изобретать своё ?))
в общем для начала вам нужно сжатие сделать того чего отсылаете, ибо больно много информации тырите (канал просядет).

Кстати, скрин снимать через directX быстрее....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)