| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Эффект Colorize |
| Автор: SandyProgrammer 27.4.2008, 13:32 | ||
| Здравствуйте, уважаемые Программисты! В общем есть у меня такой вопрос. Есть у меня на форме картинка, хотелось бы применить к ней эффект, который называется colorize. То есть делать картинку однотонной. Но как это реализовать, я не знаю. Нашёл в DRKB вот такой код:
Но этот код для меня сложен, я не знаю, как его использовать. В общем, помогите пожалуйста в этом вопросе. Пример эффекта colorize (на случай, если я коряво описал): http://radikal.ru/F/i016.radikal.ru/0804/82/392215f8f50c.jpg.html |
| Автор: THandle 27.4.2008, 13:55 | ||
Что это за функция без результата?
? И собственно говоря что конкретно не понятно в этом коде? |
| Автор: mr.Anderson 27.4.2008, 14:09 |
| Алгоритм этого эффекта тоже не знаю, но можно попробовать его понять. Luma - это, как я понял, сила окрашивания. Она применяется в следующих формулах для задания смещения цвета в определенную сторону. Ведь что такое Colorize, судя по картинкам? Это смещение общего цветового баланса в определенную сторону. Поэтому сначала определяем силу, затем по каждой из трех составляющих цвета (Red, Green, Blue, RGB) производим смещение цвета с заданной силой. Про shr и shl ничего не могу сказать, похоже, это просто надо запомнить. В G и B происходит смещение через shr, а вот в результате производится обратное смещение с помощью shl, применяемое уже к новому цвету, полученному ранее. Не могу сказать, зачем это нужно. Я бы просто запомнил. Хотя и объяснение получить тоже интересно. Не знаю, понятно ли объяснил и правильно ли. Но мне кажется, что так. |
| Автор: VICTAR 27.4.2008, 14:20 |
| оно? |
| Автор: SandyProgrammer 27.4.2008, 14:29 |
| VICTAR, оно! Очень здорово. А можно сделать так, чтобы как в фотошопе было? Ну например мы двигаем TrackBar и в зависимости от положения меняется цвет картинки? Сам я не додумаюсь как такое сделать... :( Хотя нет! Додумаюсь, если посидеть, подумать. Но от готового примерчика не откажусь. |
| Автор: VICTAR 27.4.2008, 14:43 |
| У меня сейчас не стоит фотошопа. Если у тебя не получится, то поставлю фотошоп, посмотрю как там сделано... |
| Автор: SandyProgrammer 27.4.2008, 14:44 |
| VICTAR, окей! Спасибо, Вам большое. |
| Автор: SandyProgrammer 27.4.2008, 15:02 |
| Так, ну вот я набросал, как оно должно выглядеть на основе Вашего VICTAR примера. Только у меня изображение меняется по одному из трёх каналов, а мне нужно чтобы по всем цветам сразу. И ещё результат мне хотелось бы не на отдельном Image выводить, а на том же самом. Вот небольшое видео - пример как это реализовано в Photoshop: http://ifolder.ru/6327178 (709 kb) Мне нужно, чтобы так же ползунком (TrackBar например) можно было этот эффект воспроизводить. |
| Автор: SandyProgrammer 29.4.2008, 11:20 |
| Что-то у меня у самого не получается сделать полноценный эффект colorize. |
| Автор: SandyProgrammer 29.4.2008, 22:11 |
| Вот, сделал какое-то подобие эффекта colorize. Мне для использования в своём проекте хватит, но если кто-то доведёт это дело до ума, буду рад. |