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

Вниз

TColor -> 3 Byte, 3 Byte - > TColor   Найти похожие ветки 

 
Budy ©   (2004-02-16 14:23) [0]

Приветствую все, в том числе неспящих и уставших!
Помогите пожалуйста! Имеется переменная типа TColor, как можно получить ее Gree, Blue и Red оттенки, и наоборот??!
Заранеe спасибо!


 
TUser ©   (2004-02-16 14:25) [1]

GetXValue(..., X = R, B or G
RGB(...


 
Семен Сорокин ©   (2004-02-16 14:28) [2]

[1] + ColorToRGB


 
Budy ©   (2004-02-16 14:31) [3]

Каким образом пользоваться GetXValue? Вроде написал, а компил не находит, может библиотеку каую надо?
ЗЫ.Забыл написать, у меня Delphi5


 
MBo ©   (2004-02-16 14:34) [4]

getRvalue
и так далее ;)


 
TUser ©   (2004-02-16 14:37) [5]

Библиотека - windows.pas. Обрати внимание, что Х - это обозначение конкретного цвета.


 
Budy ©   (2004-02-16 14:49) [6]

Нет, это я понял, что вместо X нужно пихнуть B, R и G, но всеравно не пашет.
Вродь все верно: Byte:=GetRValue(TColor);!


 
MBo ©   (2004-02-16 14:54) [7]

так и пишешь - GetRValue( TColor); ????


 
Radionov Alexey ©   (2004-02-16 14:55) [8]

>Budy © (16.02.04 14:49) [6]
Из Windows.pas:

function GetRValue(rgb: DWORD): Byte;
begin
Result := Byte(rgb);
end;

function GetGValue(rgb: DWORD): Byte;
begin
Result := Byte(rgb shr 8);
end;

function GetBValue(rgb: DWORD): Byte;
begin
Result := Byte(rgb shr 16);
end;


 
kaif ©   (2004-02-16 14:59) [9]

Тип TColor это 4 байта, из которых три младших - это в принципе и есть RGB. Если отвлечься от всяких тонкостей с альфа-каналом (старший байт), в которых я не разбираюсь, то первое решение:

var
Color: TColor
r,g,b: byte;

begin
R := (Color AND $00FF0000) div $10000;
G := (Color AND $0000FF00) div $100;
B := (Color AND $000000FF);
end;

или что-то в этом духе...


 
Ega23 ©   (2004-02-16 15:20) [10]

Была ещё какая-то фишка в Delphi, R и B местами менялись. Т.е. смотреть надо - кто младший - R или B.


 
Anatoly Podgoretsky ©   (2004-02-16 15:29) [11]

Ничего не менялось, как было RGB так RGB и осталось


 
Ega23 ©   (2004-02-16 15:32) [12]

2 Anatoly Podgoretsky © (16.02.04 15:29) [11]
Я имел ввиду совместимость с другими программами. Сейчас не помню гди и как, но в одной программе $FF0000 был красным, а в Delphi - синим. Или наоборот.


 
Anatoly Podgoretsky ©   (2004-02-16 15:37) [13]

Ты путаешь dword с RGB, указаный тобой формат относится к dword, число в хекс формате


 
Budy ©   (2004-02-16 17:30) [14]

Да нет! У меня вообще не так.
Короче, я вообще сглупил!
Я вставил TImage, и загрузил в него JPG-картинку.
Когда мышь движется по TImage"у у меня такая ерунда:
...
procedure Image1MouseMove(...);
var
Red,Blue,Green:Byte;
begin
Red:=GetRValue(TImage.Canvas.Pixels[X,Y]);
Blue:=...
...
end;
...
Вот такая глупость!



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
1-93834
Builder
2004-02-18 18:02
2004.02.29
рабочий стол


3-93795
СергейМ
2004-02-04 17:22
2004.02.29
Помогите с QReport-ом!


14-94123
Думкин
2004-02-08 06:35
2004.02.29
С днем рождения! 8 февраля.


6-94083
OneGuy
2003-12-21 16:03
2004.02.29
Не могу передать сообщение с машины на машину (UDP or NMMsg)


14-94108
Nick-From
2004-02-09 20:20
2004.02.29
Не могу настроить Outlook