![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
alexmur |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.5.2004 Репутация: нет Всего: нет |
Привет всем!!
Я пишу на WIN32API. Мне надо переслать картинку экрана с SERVER на CLIENT. Я посылаю каждый раз только одну строку, которую получаю с GetDIBits(). CLIENT составляет BITMAP с SetDIBits() и выводит картинку с BitBlt(). Проблема в том, что всё это очень медленно работает. Берёт примерно 5 минут передать одну картинку размером с экран по глобальной сети. А в LAN это почти моментально. Перекопал весь MSDN, нашёл похожие программки, но способа убыстрить передачу не нашёл. Сижу над этим уже неделю. ![]() Если кто знает, в чём проблема, и как её решить, буду очень признателен. |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Я думаю, дело в размере битмапа. У меня например 1152х864 точки делает 2,84 МБ.
Потом вопрос, как часто ты передаёшь изображение. можешь подсчитать траффик ![]() Решение в лоб: компрессуй каждую строчку gzip'ом я попробовал, получилось 60 КБ, что весьма неплохо.. |
|||
|
||||
alexmur |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.5.2004 Репутация: нет Всего: нет |
Размер битмапа - это размер экрана у сервера (в зависимости от резолюции).
Изображение передаётся постоянно. Это что-то вроде программы "шпиона".
Что это такое? |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
библитотека представляющая функцию сжатия. glib Как паковщик WinZip или WinRar пакуют/распаковывают файлы ты сможешь паковать свою строчку. И распаковывать на клиенте. Вообще, библиотека называется zlib взять её и почитать о ней можно здесь: http://www.gzip.org/zlib/ Вообще то, если тебе шпионить, я бы компрессовал в jpeg всю картинку. Ну или в gif. Поищи в сети библиотеки, которые это делают. |
|||
|
||||
alexmur |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.5.2004 Репутация: нет Всего: нет |
А как сжимать в JPEG?
этих функций нет уже встроенных в VC++? Ещё вопрос: сжатие, а потом расжатие - не будет ли брать почти столько же времени? |
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Не думаю.. Я вообще стараюсь избегать Mikrosoft'ских решений. Поищи библиотеки в сети. Оpen source community не подведёт ![]()
Ну всё ведь зависит от скорости сети и процессора ![]() Но в "нормальных" условиях думаю нет. Ты ведь смотришь например DIVX фильмы, так там процессор поболее загружен ![]() |
||||
|
|||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Я так понимаю что вы передаете за раз одну строку, как же тогда собираетесь кодировать JPG?
Но если уж на то пошло в ATL 7 есть класс CImage который умеет конвертировать bmp B jpg.. Не всегда надо избегать майкрософтовских решений ![]() --------------------
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |