Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c