Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Раскрашивание серой картинки [Delphi, Windows]


Новичек в игрушках ©   (2003-09-03 16:57:00) 

Может ктото подскажет как можно сделать картинку в градациях серого - когото определенного цвета - например в градациях лилового.
И еще как из тойже картинки сделать переход цвета - например светлые области голубые, а темные зеленые - а промежуточные - переход между голубым и зеленым.
Чтото подобное сделано в спрайтах Counter-Strike.


pasha_676   (2003-09-05 13:40:00) [1]


> а что такое 0х24?

Число дано в хексе


TButton   (2003-09-05 13:30:00) [2]

Я не дурак!
а что такое 0х24?


Sapersky   (2003-09-05 10:36:00) [3]

RGB(0x24*234 div 255,0x24*65  div 255,0x24*127 div 255)

Говорят ещё, что вместо div 255 лучше (быстрее) использовать shr 8, но я лично каких-то прибавок в скорости не замечал. Возможно, такую замену  компилятор делает сам.
В данном случае результирующее изображение будет несколько темнее, поэтому рекомендуется для окраски использовать яркие цвета. Или делить не на 255, а на что нибудь поменьше. Но тогда добавить к каждому компоненту and 255 ( = If n>255 then n:=255), чтобы не вышло за пределы.


Dobrynja   (2003-09-05 09:27:00) [4]

>> ZmeiGorin ©   (04.09.03 17:25) [6]
  RGB(0x24*234,0x24*65,0x24*127)

у тебя картинка будет бледнее (светлее) исходной


ZmeiGorin   (2003-09-04 17:25:00) [5]

RGB(0x24*234,0x24*65,0x24*127)


pasha_676   (2003-09-04 17:04:00) [6]

Помоему ты должен определить во сколько шагов это нужно сделать, определить преращение шага, ну и с этим преращением рисовать точки/линии.


Новичек в игрушках   (2003-09-04 16:50:00) [7]

Ну почти понял - вот только с умножением как ?
Например есть темно-серая точка 0х24 - чтобы получить такую-же но цветную где основной цвет RGB(234, 65, 127) - что на что мне нужно умножить ?


Sapersky   (2003-09-03 18:05:00) [8]

Палитру в данном случае можно использовать. Даже лучше - меньше места исходное изображение займёт. А результирующее может быть в любом формате.


TButton   (2003-09-03 17:42:00) [9]

объясняю. у тебя есть ч-б картинка, и есть цвет, ктоб картинка приобрела оттенки етого цвета, нужно каждый пиксель картинки умножить на етот цвет... объяснил непонятно, знаю. для примера берем фотожопу, в 1м слое - ч-б картинка, второй залит каким-то цветом, вовтором слое ставим режим смешения "умножение" и получаем то что тебе надо.


pasha_676   (2003-09-03 17:12:00) [10]

Что сделано в спрайтах - делается не в игре, а в граф редакторе. А вообще - линии постепенно (по необходимому закону) меняющие цвет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо