![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скоростная работа с битмапами [D7, WinXP]
Grief © (2005-04-20 13:44:00)Товарищи мастера, есть у меня один вопрос, а точнее два: 1) Как проверит то, что на двух битмапах одинаковое изображение? Если сравнивать попиксельно - очень медленно, а по другому не получается... :( А второй, как побыстрее копировать изображение одного DC на другой?
BitBlT работает вполне прилично, но все-таки порой проц сильно загружен. Как ускорить?
Grief (2005-04-22 16:23:00) [1]Marser - гениально - проверять некоторые точки
Мне как раз примерно это и подойдет, наверно, только некоторые кадры не пропечатаются, т. к. а если не попадет на нужную точку изменение? SammIk - надо, покажи прогу или кинь на мыло если не в лом!
SammIk (2005-04-21 14:22:00) [2]=) Если надо у мя есть про-ра быстрого сравнения памяти)
SammIk (2005-04-21 14:22:00) [3]=) Если надо у мя есть про-ра быстрого сравнения памяти)
alpet (2005-04-21 13:33:00) [4]Вариант c GetDIBits самый быстродействующий. Он позволяет на больших растрах копировать кусочки, которые можно проверять. Таким образом на не совпадение можно наткнуться и в начале цикла, тогда как вариант с хешем потребует вычисления для всего растра (если не хэшировать отдельные же регионы, но хэши в данном случае вероятностный метод - может и ошибится).
Marser (2005-04-20 19:42:00) [5]Сеткой.
Marser (2005-04-20 19:41:00) [6]
> Grief ©
Самый простой вариант - выборочное сравнение, допустим, 2-3% точек на разных участках рисунка.
SammIk (2005-04-20 19:34:00) [7]Можна выбрать массив пикселей и посчитать хеш.
Но это если сравнивать большие файлы и которых много.
alpet (2005-04-20 19:05:00) [8]WinAPI такого сервиса вроде не предоставляет. То что предложено - самый (имхо) оптимизированный вариант. Если GetDIBits кажется слишком навороченной, используй обертку для нее GetBitmapBits.
Grief (2005-04-20 18:46:00) [9]а... это туда же, я понял... а может есть-таки функция? ну например хотя бы можно определить, что рисунок полностью черный? ну все цвета = 0?
Grief (2005-04-20 18:43:00) [10]ну точнее со сравнением?
Grief (2005-04-20 18:42:00) [11]А со вторым?
Grief (2005-04-20 18:39:00) [12]сэнкс!
Marser (2005-04-20 18:26:00) [13]http://www.delphimaster.ru/articles/pixels/index.html
> Радмин? Я наверно совсем тупой, но я не слышал об
> этом, что это такое?
Remote Admin. Система удаленного администрирования.
Grief (2005-04-20 18:21:00) [14]Радмин? Я наверно совсем тупой, но я не слышал об этом, что это такое?
alpet (2005-04-20 16:19:00) [15]1. GetDIBits + CompareMemory
2. DirectDraw: BltFast, Blt (MSDN: CAggDrawSurface)
Eraser (2005-04-20 15:32:00) [16]Grief ©
РАдмин изобритаешь? )
К сожалению тут без написания драйверов не обойтись. Попробуй раскурочить Радмин дизассемблером IDA- многое станет ясно...