| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Определение близкого к заданому цвету пикселя? |
| Автор: WaReZMEN 17.1.2008, 09:58 |
К примеру есть у меня картинка ![]() мне нужно попикселно ее обработать так чтобы получилось вот так ![]() Поясняю я пишу функцию каторая должна какбы из сближать цвет. тоесть кпримеру у меня есть один черный пиксель rgb(0,0,0) рялом есть еще один пиксель... да в принцепе даже не важно где он но мы знаешм что дето на кртинке есть еще пиксель rgb(1,1,1) или rgb(1,2,0) так вот я хочу чтоб при проверки евляется ли он цветом rgb(0,0,0) возвращался из процедуры ответ true... ну и хочется чтоб в процедуру передоволось значение каторое будет говорить что еще пока можно брать этот цвет ... (ну кпримеру как в фотосшоте волшебная палочка работает там ведь коофичиент совпадения задается...) вот меня и интересует как это сделать? |
| Автор: Alexeis 17.1.2008, 10:09 |
| Ну и чего тут сложного? Вычисляешь разницу между тестовым цветом TestColor и текущим цветом CurColor по формуле Dif := Abs(GetRColor(TestColor) - GetRColor(CurColor)) + Abs(GetGColor(TestColor) - GetGColor(CurColor)) + Abs(GetBColor(TestColor) - GetBColor(CurColor)); Если Dif меньше определенного порога, то присваиваем тестовый цвет. Вообще, если использовать ScanLine, то то составляющие цвета получаются автоматом (при цветовой схеме 24 бита на цвет) без GetXColor |
| Автор: WaReZMEN 17.1.2008, 11:41 |
| Alexeis, спс а что за ScanLine ? |
| Автор: Alexeis 17.1.2008, 14:27 |
Свойство битмапа позволяющее получать прямой доступ к памяти картинки. Работает в сотни раз быстрее pixels[]. |
| Автор: WaReZMEN 18.1.2008, 01:19 |
| Alexeis, спасибо но мне сдесь скорость не важна |
| Автор: remax 18.1.2008, 04:24 | ||
А что плохого, когда при нужной функциональности еще и быстрее? Ну, разве что религия не позволяет.... |
| Автор: WaReZMEN 18.1.2008, 08:16 |
| remax, Нет времяни расбиратся что там и как... к томуже картинка не 24 бита |