Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.01;
Скачать: CL | DM;

Вниз

Цвета   Найти похожие ветки 

 
Achpile   (2009-09-04 22:38) [0]

Люди, подскажите, плз, как можно разбить цвет типа TColor на RGB составляющие, чтоб перевести его в DWORD (TD3DColor)?


 
Kolan ©   (2009-09-04 22:45) [1]

TColor — это число.


 
Kolan ©   (2009-09-04 22:46) [2]

А так — GetR, GetG, GetB по моему. Из Graphics.


 
Anatoly Podgoretsky ©   (2009-09-04 22:57) [3]

> Achpile  (04.09.2009 22:38:00)  [0]

ColorToRGB а затем любым путем выделить составляющие, например предложеным GetX


 
Омлет   (2009-09-05 00:59) [4]

Вроде так:

type
 TRGBX = packed record
   R, G, B, X: Byte;
 end;

function ContrastColor(AColor: TColor): TD3DColor;
begin
 with TRGBX(ColortoRGB(AColor)) do
   Result := (X shl 24) or (R shl 16) or (G shl 8) or B;
end;


 
Омлет   (2009-09-05 01:01) [5]

Э.. название только поменяй на Color2D3DColor, я забыл )


 
Омлет   (2009-09-05 01:09) [6]

> (X shl 24)

Это тоже можно убрать.. В TColor этот байт не задействован.

type
TRGBX = packed record
  R, G, B, X: Byte;
end;

function Color2D3DColor(AColor: TColor): TD3DColor;
begin
with TRGBX(ColortoRGB(AColor)) do
  Result := (R shl 16) or (G shl 8) or B;
end;


 
antonn ©   (2009-09-05 02:06) [7]


> Kolan ©   (04.09.09 22:46) [2]
>
> А так — GetR, GetG, GetB по моему. Из Graphics.

GetRValue(), GetGValue() и GetBValue()


 
Германн ©   (2009-09-05 02:33) [8]

А что есть TD3DColor?


 
KilkennyCat ©   (2009-09-05 03:28) [9]

таж фигня, только из DirectX
http://msdn.microsoft.com/en-us/library/bb172518%28VS.85%29.aspx


 
Achpile   (2009-09-05 06:52) [10]

Спасибо вам всем огромное =)


 
Anatoly Podgoretsky ©   (2009-09-05 09:19) [11]

> KilkennyCat  (05.09.2009 03:28:09)  [9]

А согласно этому это никакое не RGB, а множество форматов.


 
Anatoly Podgoretsky ©   (2009-09-05 09:21) [12]

Сообственно это означает написание некоторого количества функции, по одной на формат, вместо макросов и подавать на вход нужной ColorToRGB



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

Текущий архив: 2009.11.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
15-1251649015
oldman
2009-08-30 20:16
2009.11.01
Москвичи, никто в Эльдорадо за дешевыми ноутами не ходил?


15-1251556679
Дмитрий С
2009-08-29 18:37
2009.11.01
Почему MS не подписывает такие файлы как kernel32.dll?


11-1207200531
Дмитрий Пырин
2008-04-03 09:28
2009.11.01
Подскажите грамотный способ загрузить данные из файла в ListBox


15-1250747781
Медвежонок Пятачок
2009-08-20 09:56
2009.11.01
Первый канал отжигает


4-1221118011
dmitry_12_08_73
2008-09-11 11:26
2009.11.01
Функция GetNextWindow ищет не все окна