Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Вниз

Скоростная работа с битмапами   Найти похожие ветки 

 
Grief ©   (2005-04-20 13:44) [0]

Товарищи мастера, есть у меня один вопрос, а точнее два: 1) Как проверит то, что на двух битмапах одинаковое изображение? Если сравнивать попиксельно - очень медленно, а по другому не получается... :( А второй, как побыстрее копировать изображение одного DC на другой?
BitBlT работает вполне прилично, но все-таки порой проц сильно загружен. Как ускорить?


 
Eraser ©   (2005-04-20 15:32) [1]

Grief ©

РАдмин изобритаешь? )

К сожалению тут без написания драйверов не обойтись. Попробуй раскурочить Радмин дизассемблером IDA- многое станет ясно...


 
alpet ©   (2005-04-20 16:19) [2]

1. GetDIBits + CompareMemory
2. DirectDraw: BltFast, Blt (MSDN: CAggDrawSurface)


 
Grief ©   (2005-04-20 18:21) [3]

Радмин? Я наверно совсем тупой, но я не слышал об этом, что это такое?


 
Marser ©   (2005-04-20 18:26) [4]

http://www.delphimaster.ru/articles/pixels/index.html

> Радмин? Я наверно совсем тупой, но я не слышал об
> этом, что это такое?

Remote Admin. Система удаленного администрирования.


 
Grief ©   (2005-04-20 18:39) [5]

сэнкс!


 
Grief ©   (2005-04-20 18:42) [6]

А со вторым?


 
Grief ©   (2005-04-20 18:43) [7]

ну точнее со сравнением?


 
Grief ©   (2005-04-20 18:46) [8]

а... это туда же, я понял... а может есть-таки функция? ну например хотя бы можно определить, что рисунок полностью черный? ну все цвета = 0?


 
alpet ©   (2005-04-20 19:05) [9]

WinAPI такого сервиса вроде не предоставляет. То что предложено - самый (имхо) оптимизированный вариант. Если GetDIBits кажется слишком навороченной, используй обертку для нее GetBitmapBits.


 
SammIk ©   (2005-04-20 19:34) [10]

Можна выбрать массив пикселей и посчитать хеш.
Но это если сравнивать большие файлы и которых много.


 
Marser ©   (2005-04-20 19:41) [11]


> Grief ©  

Самый простой вариант - выборочное сравнение, допустим, 2-3% точек на разных участках рисунка.


 
Marser ©   (2005-04-20 19:42) [12]

Сеткой.


 
alpet ©   (2005-04-21 13:33) [13]

Вариант c GetDIBits самый быстродействующий. Он позволяет на больших растрах копировать кусочки, которые можно проверять. Таким образом на не совпадение можно наткнуться и в начале цикла, тогда как вариант с хешем потребует вычисления для всего растра (если не хэшировать отдельные же регионы, но хэши в данном случае вероятностный метод - может и ошибится).


 
SammIk ©   (2005-04-21 14:22) [14]

=) Если надо у мя есть про-ра быстрого сравнения памяти)


 
SammIk ©   (2005-04-21 14:22) [15]

=) Если надо у мя есть про-ра быстрого сравнения памяти)


 
Grief ©   (2005-04-22 16:23) [16]

Marser - гениально - проверять некоторые точки
Мне как раз примерно это и подойдет, наверно, только некоторые кадры не пропечатаются, т. к. а если не попадет на нужную точку изменение? SammIk - надо, покажи прогу или кинь на мыло если не в лом!



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.034 c
14-1117080687
Danilka
2005-05-26 08:11
2005.06.14
Не сочтите меня тормозом, но, про Ирак


3-1115298176
Alexandr
2005-05-05 17:02
2005.06.14
DbgridEh+FIBPlus


1-1117374225
Serg1981
2005-05-29 17:43
2005.06.14
Открытие сайта, ссылка на который находится в Label


1-1116949818
Karlson
2005-05-24 19:50
2005.06.14
Как Hintу в Comboboxе присвоить текущее активное значение?


1-1117521709
imm
2005-05-31 10:41
2005.06.14
Где искать буфер TBitmap





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский