Нужен совет. Передача изображения по WinSock. НЕ ФАЙЛА РИС.!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Нужен совет. Передача изображения по WinSock. НЕ ФАЙЛА РИС.!

Сообщение visualman » 07.04.2008 (Пн) 21:23

Имеется 2 машины клиент/сервер через винсок контрол.

На клиенте - форма приложения клиента перемещается за указателем мыши. Форма инвизибл. Через заданный промежуток времени (40 мс) с помощью BitBlt снимается изображение с RECT'а окна приложения, и рисуется в пикчер боксе, расположенном на этой форме (которая невидимая) Тут всё гуд, проблема дальше.

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

Я пробовал сделать это двумя путями:

1) Полученная картинка жалась в JPEG, файлом передавалась через соккет и отображалась на стороне сервера. Ни какой динамики изображения я соответственно не получил, т.к. даже 5 снимков в секунду - и комп начинало плющить. Картинки весили кстати всего по 2-4 кб.

2) С помощью GetDIBits снимал массив RGB снимка и отправлял его в текстовом виде серверной части. Там на базе этих данных - восстанавливал рисунок. Так вот в этом случае - картинка 320*240 пикселей составляла 225кб массива. Естественно это меня абсолютно не устраивает.

Глядя на работу всем известного RAdmin, я понял, что он передаёт информацию ТОЛЬКО об изменившихся пикселах.

Подскажите, как решить мою проблему? Мне нужна динамика. На реалтайм не расчитываю, но хотябы 12 FPS получить.

Может быстрый сорсик у кого есть? Всё, что представлено на PSC - ужасно ))) В некоторых экземплярах даже GetPixel встречал )))

Заранее спасибо
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 07.04.2008 (Пн) 22:45

Так ведь цифровое ТВ именно так и работает - передаётся только изменение картинки. Формат MPEG (номер не помню - кажется, 2). Как это достигается - не в курсе.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.04.2008 (Вт) 9:07

В 2 сделай упаковку данных, размер сократится раза в четыре.
Что касается RAdmin, то вроде бы начиная со второй версии он не изменения изображения отсылает, а перехватывает GDI-команды.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 30

    TopList