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

Вниз

Библиотеки для работы с графикой.   Найти похожие ветки 

 
duMka ©   (2010-02-12 19:00) [0]

Имеется битмар размером например 1000х1000 пикселей и второй битмап, меньшего размера (например 50х50).
Требуется определить, имеется ли меньший битман в большем.
Мне кажется что если тупо искать по пикселам, то это будет очень долго... может есть какие-то быстрые библиотеки?


 
DVM ©   (2010-02-12 20:30) [1]


> Мне кажется что если тупо искать по пикселам, то это будет
> очень долго

Доли секунды это будет. Если постараться, то сотые.
Для такого поиска вообще не надо знать ничего про пиксели. Если оба битмапа имеют одинаковый формат, то задача сводится к поиску в одной буфере в памяти другого буфера. В функции строк 20 от силы.


 
Вася   (2010-02-12 21:44) [2]

> Мне кажется что если тупо искать по пикселам, то это будет очень долго... может есть какие-то быстрые библиотеки?

а как по вашему те другие готовые библиотеки делают?по волшебству?=))


 
KilkennyCat ©   (2010-02-12 22:08) [3]

достаточно просто понимать, что битмап - это просто массив. вхождение одного массива в другой - простейшая математическая задача.


 
Jeer ©   (2010-02-12 22:23) [4]

Удалено модератором
Примечание: Offtopic


 
DVM ©   (2010-02-12 22:29) [5]

Удалено модератором
Примечание: Offtopic


 
Jeer ©   (2010-02-12 22:38) [6]

Удалено модератором
Примечание: Offtopic


 
duMka ©   (2010-02-13 11:17) [7]


> а как по вашему те другие готовые библиотеки делают?по волшебству?
> =))


Ну, библиотеки пишут профессионалы, возможно во вставками на ассемблере, я же дилетант. Готовая, отлаженная и оптимизированная библиотека будет работать лучше, чем то что напишу я.


> Доли секунды это будет. Если постараться, то сотые.
> Для такого поиска вообще не надо знать ничего про пиксели.
>  Если оба битмапа имеют одинаковый формат, то задача сводится
> к поиску в одной буфере в памяти другого буфера. В функции
> строк 20 от силы.


Мне нужно скорость в миллисекунды. Видимо для этого нужно очень постаратся  :). Кроме того в первом посте я очень упрощено объяснил задачу. На самом деле поиск нужен с учетом маски - т.е. массивов то не два, а три как минимум. Думаю в библиотеке для растровой графики должны быть таие функции...


 
KilkennyCat ©   (2010-02-13 13:02) [8]


> Мне нужно скорость в миллисекунды.
> очень упрощено объяснил задачу
> Ну, библиотеки пишут профессионалы,

Ну тогда выход один - заказать профессионалам.


 
Вася   (2010-02-13 14:29) [9]

> библиотеки пишут профессионалы, возможно во вставками на ассемблере

я читал что высокоуровневые языки гораздо лучше переделывают код на ассемблер чем люди...

> На самом деле поиск нужен с учетом маски - т.е. массивов то не два, а три как минимум

маски?всмысле TransparentColor?а оно в отдельном файле хранится?

в общем через ScanLine должно довольно быстро получаться...=))


 
Anatoly Podgoretsky ©   (2010-02-13 16:52) [10]

> Вася  (13.02.2010 14:29:09)  [9]

Люди пытаются мозг включить, вот он и подводит.


 
Вася   (2010-02-13 17:51) [11]

пишем что-то вроде "Working with ScanLine" в яндекс и всё...=))


 
Anatoly Podgoretsky ©   (2010-02-13 19:46) [12]

> Вася  (13.02.2010 14:29:09)  [9]

Люди пытаются мозг включить, вот он и подводит.


 
Б   (2010-02-13 20:07) [13]


>  есть какие-то быстрые библиотеки?


FastDIB



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

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

Наверх





Память: 0.47 MB
Время: 0.062 c
2-1267110427
dkhristich
2010-02-25 18:07
2010.08.27
Как корректно прекратить поток?


2-1268741673
Вася
2010-03-16 15:14
2010.08.27
Destructor


15-1266854887
Kerk
2010-02-22 19:08
2010.08.27
Язык Си и начальное обучение программированию


2-1270034843
F$
2010-03-31 15:27
2010.08.27
Int64 как Integer


2-1266751523
Fr
2010-02-21 14:25
2010.08.27
TRichEdit, вставка текста





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский