-
-
> EPaul (24.09.10 01:11) [19]
> Плохиш У меня не получается скачать по ссылке CompareMemBV14. > zip Выдает ошибку 404 файл не найден.
В гугле это ищется за 10 секунд.
-
> EPaul (24.09.10 01:11) [19]
> Но что-то я уже разуверился , что в делфи это можно сделать. >
Если ты не можешь, это не значит, что этого сделать нельзя. И Делфи тут не при чем. Сделать можно многое. Правда путь ты выбрал не самый лучший, все же просто периодически сканировать все изображение - не выход. Тут вероятно драйвер нужен для обнаружения изменений с минимальной загрузкой. Тебе же посоветовал бы отказаться от TBitmap в пользу TFastDIB (поищи в интернет). В ней проход по пикселам можно выполнить гораздо быстрее.
-
-
-
DVM Спасибо всем за ответы. На Vingrad мне дали один замечательный код. Сейчас занимаюсь его перевариванием. Тема пока не закрыта.
-
DVM Написание драйверов - это супер. Может быть, когда нибудь... а пока, что-нибудь попроще.
-
EPaul (25.09.10 15:59) [26]
при соединении, можно передать изображение всего экрана, а потом: - отлавливать получения фокуса окошками. - следить за курсором(движения, нажатия), быстро расчитывать в какой "зоне" он проходит/нажимает и отправлять эту зону на перерисовку. - точно так же с клавиатурой. - и т.д., чем больше "оконных" и мыше-клавных сообщений отлавливать, тем больше будет "правильных" корректировок зон.
нутыпонел. хуки такие хуки.
-
по поводу сравнения:
pitch:= (cmPredBufBMP.Width * BytesPerPixel + 3) and not 3;
size:= pitch * cmPredBufBMP.Height;
if( not CompareMem(cmPredBufBMP.Scanline[0], cmCurrBufBMP.Scanline[0], size) )then begin
...
end;
> нутыпонел. хуки такие хуки.
- при выводе анимации никак пользовательских действий не происходит... Сравнение полного кадра экрана с предыдущим, по отношению к времени скриншота(копирования из видеопамяти) - занимает меньше 1%... Если использовать зеркальный драйвер(из готовых условно бесплатных, DFMirage - например) - сравнимо. У меня больше 90% времени ZLib отжирает, но если предварительно дельта и RLE сжатие сделать, вытягивает кадров 10-15 в секунду при 10% загрузке CPU...
-
> Дроблю экран разрешением 1680х1050 на кусочки 50х50 пикселей > получается 714 кусочков.
О, ужас... Зачем?? Тратить время на разбитие картинки, чтоб потом спотыкаться об огромное количество фрагментов? Так только тормозить всё...
Цель какая? Пересылать изменения экрана на удалённый комп? Дык попробуйте делать XOr а потом Хаффманом... И всё, можно отсылать изменения...
-
hgjgh
-
http://www.str-plus.ru/Сравнение полного кадра экрана с предыдущим, по отношению к времени скриншота(копирования из видеопамяти) - занимает меньше 1%... Если использовать зеркальный драйвер(из готовых условно бесплатных, DFMirage - например) - сравнимо. У меня больше 90% времени ZLib отжирает, но если предварительно дельта и RLE сжатие сделать, вытягивает кадров 10-15 в секунду при 10% загрузке CPU... Ну если только попробовать сделать сжатие
-
> Попиксельный метод сравнения 2 bitmap не подходит
А другого не бывает, мил-человек! =))) По крайней мере если нужно 100% точное соответствие, а не частичное.
> очень медленно
Если через усовершенствованный аналог CompareMem() - жутко быстро.
> Дык попробуйте делать XOr а потом Хаффманом... Любопытно. А TeamViewer делает пачкой из 4-х скринов, каждый из которых... Как бы это... Строка, 3 пропущены, строка, 3 пропущены. И каждый скрин есть 4-я часть оригинала.
|