Главная страница
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.5 MB
Время: 0.018 c
1-93982
Exciter
2004-02-17 12:16
2004.02.29
Как программно подменить содержимое ресурса, зная его имя?


1-93839
uu
2004-02-16 18:49
2004.02.29
Задержка при завершении программы


14-94098
volkodav
2004-02-09 23:41
2004.02.29
ЛЮДИ! ОБЪЯСНИТЕ ПОЖ.!


11-93825
Кладов
2003-06-06 11:41
2004.02.29
FPC: подключение ресурсов Windows


1-93931
Артем К.
2004-02-15 06:28
2004.02.29
как узнать имя формы, на которую помещен компонент