![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Хм. А как их найти эти самые измененные куски? Вычли из предыдущего кадра новый, вот и получили черные поля. Черное поле это цвет со значением "0" т.е. неизменные поля. РЛЕ такие области кодирует 1) Признак повторения 2) Цвет повторения 3) Число пикселей повторения. Поскольку в памяти битовая карта непрерывная и разбиение на строки идет внизу сверх, а в строках пикселы слева направо, то можно вообще игнорировать конец строки если на новой стоке продолжается тотже цвет. Как видно алгоритм основан, на простом сравнении и потому черезвычайно быстрый. Хотя для скриншотов наилучшее сжатие обычно дает png, но время сжатия одного кадра столь велико, что думаю даже Dual Core 6700 не потянет больше 5 кадров / с. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
а.. спасибо за объяснение - понял.
Хорошее решение, мне представлялось более геморным. |
|||
|
||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Хм, а что-то xor'ом не получается выделить разницу.. Пробую так:
В чём тут может быть проблема? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
А зачем XOR ? Чем плох обычный минус? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Так нет, ни xor, ни минус не срабатывают!
А у тебя разве сработало? А xor я попробовал по совету skyboy несколькими постами ранее здесь. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Убрал все ненужное и подправил одну строчку
В прикрепленном архиве 3 файла 1) исходный, 2) измененный 3) разница Присоединённый файл ( Кол-во скачиваний: 7 )
24.7z 108,27 Kb-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Кстати можно было сделать все намного лучше и быстрее при помощи функции
Вот последний параметр как раз и определяет растровую операцию
Полный спектр всех операций, которые только могут понадобиться -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Во чёрт, ошибся в еденичке!!
Спасибо за помощь!! Хм, а почему с этими файлами аналогично не работает? http://ifolder.ru/774066 Файлы 24битовые, что в них не так..? Кстати, а код:
тоже весьма интересно работает, только немножечко не доходит до результата... |
|||
|
||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
На настоящих скриншотах опробовал - работает..
удивительно.. Рисовал в Microsoft Paint, что же в них может быть такого, что прога не выводит корректный результат? |
|||
|
||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
хм.. с одними файлами работает с другими нет, не понятно что тут может стать причиной..
К алгоритму вроде придраться нельзя, так в чём же ошибка моя?? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
DelphiFun, Сорри 2 дня был полный дисконект
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Вот эти файлы и файл-разницы..
С наступившим!! Присоединённый файл ( Кол-во скачиваний: 4 )
2.zip 15,59 Kb |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Там все нормально, только результат будет зависеть от порядка следования картинок. Если использовать XOR то в этом случае все однозначно. Результирующая картинка является правильной. Кстати я настоятельно советую воспользоваться bitblt, поскольку она использует аппаратное ускорение видеокарты и скорость такой операции будет гораздо больше чем при использовании процессора. Добавлено @ 21:51 Вот пожалуйста насколько проще и главное быстрее, можно сделать тотже самый XOR
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| DelphiFun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Спасибо большое за ответ!
А почему же получается такой результат?? Но XOR ведь тоже не отделяет эту новую линию от остальных..(то бишь разницу).. или у тебя отделяет? XOR у меня выделяет эту линию красным цветом.. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Правильно красным! А кто сказал, должно быть по другому? Это же XOR! может попробовать посчитать какой получится результат (0х00FFFF XOR 0xFFFFFF). Подскажу 1 XOR 1 = 0, 1 XOR 0 = 1. Теперь ясно почему результат 0xFF0000 ? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |