Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Эффект Colorize, Хотелось бы узнать, как его реализовать 
V
    Опции темы
SandyProgrammer
Дата 27.4.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Здравствуйте, уважаемые Программисты!
В общем есть у меня такой вопрос. Есть у меня на форме картинка, хотелось бы применить к ней эффект, который называется colorize. То есть делать картинку однотонной. Но как это реализовать, я не знаю.
Нашёл в DRKB вот такой код:
Код

function Colorize(RGB, Luma: Cardinal);
var
l, r, g, b: Single;
begin
Result := Luma;
if Luma = 0 then { it's all black anyway}
   Exit;
l := Luma / 255;
r := RGB and $FF * l;
g := RGB shr 8 and $FF * l;
b := RGB shr 16 and $FF * l;
Result := Round(b) shl 16 or Round(g) shl 8 or Round(r);
end;

Но этот код для меня сложен, я не знаю, как его использовать. В общем, помогите пожалуйста в этом вопросе.

Пример эффекта colorize (на случай, если я коряво описал):
user posted image
PM MAIL   Вверх
THandle
Дата 27.4.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Что это за функция без результата? smile 
Код

 function Colorize(RGB, Luma: Cardinal);


?

И собственно говоря что конкретно не понятно в этом коде?
PM   Вверх
mr.Anderson
Дата 27.4.2008, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Алгоритм этого эффекта тоже не знаю, но можно попробовать его понять.

Luma - это, как я понял, сила окрашивания. Она применяется в следующих формулах для задания смещения цвета в определенную сторону. 
Ведь что такое Colorize, судя по картинкам? Это смещение общего цветового баланса в определенную сторону. Поэтому сначала определяем силу, затем по каждой из трех составляющих цвета (Red, Green, Blue, RGB) производим смещение цвета с заданной силой. Про shr и shl ничего не могу сказать, похоже, это просто надо запомнить. В G и B происходит смещение через shr, а вот в результате производится обратное смещение с помощью shl, применяемое уже к новому цвету, полученному ранее. Не могу сказать, зачем это нужно. Я бы просто запомнил. Хотя и объяснение получить тоже интересно.

Не знаю, понятно ли объяснил и правильно ли. Но мне кажется, что так. smile

Это сообщение отредактировал(а) mr.Anderson - 27.4.2008, 14:10


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
VICTAR
Дата 27.4.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



оно?

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  test.rar 295,91 Kb
PM MAIL   Вверх
SandyProgrammer
Дата 27.4.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



VICTAR, оно! Очень здорово.  smile 
А можно сделать так, чтобы как в фотошопе было? Ну например мы двигаем TrackBar и в зависимости от положения меняется цвет картинки? Сам я не додумаюсь как такое сделать... :(

Хотя нет! Додумаюсь, если посидеть, подумать. Но от готового примерчика не откажусь. smile

Это сообщение отредактировал(а) SandyProgrammer - 27.4.2008, 14:35
PM MAIL   Вверх
VICTAR
Дата 27.4.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



У меня сейчас не стоит фотошопа.
Если у тебя не получится, то поставлю фотошоп, посмотрю как там сделано... 

Это сообщение отредактировал(а) VICTAR - 27.4.2008, 14:44
PM MAIL   Вверх
SandyProgrammer
Дата 27.4.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



VICTAR, окей! Спасибо, Вам большое.

Это сообщение отредактировал(а) SandyProgrammer - 27.4.2008, 14:45
PM MAIL   Вверх
SandyProgrammer
Дата 27.4.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Так, ну вот я набросал, как оно должно выглядеть на основе Вашего VICTAR примера.
Только у меня изображение меняется по одному из трёх каналов, а мне нужно чтобы по всем цветам сразу. И ещё результат мне хотелось бы не на отдельном Image выводить, а на том же самом.

Вот небольшое видео - пример как это реализовано в Photoshop:
http://ifolder.ru/6327178 (709 kb)

Мне нужно, чтобы так же ползунком (TrackBar например) можно было этот эффект воспроизводить.

Это сообщение отредактировал(а) SandyProgrammer - 27.4.2008, 15:37

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  Colorizer.rar 278,11 Kb
PM MAIL   Вверх
SandyProgrammer
Дата 29.4.2008, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Что-то у меня у самого не получается сделать полноценный эффект colorize.  smile  Помогите кто-нибудь, пожалуйста. Все данные в предыдущем посте...
PM MAIL   Вверх
SandyProgrammer
Дата 29.4.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Вот, сделал какое-то подобие эффекта colorize. Мне для использования в своём проекте хватит, но если кто-то доведёт это дело до ума, буду рад.

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  simpleexample.rar 296,26 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0633 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.