![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как цвет #FFFFFF перевести в RGB?
kas-t © (2004-04-06 08:41:00)Здравствуйте! Подскажите какими методами можно перевести цвет #FFFFFF в RGB... то есть разбить по цветам? Зарание огромное спасибо...
kas-t (2004-04-08 08:18:00) [1]Спасибо разобрался...
Anatoly Podgoretsky (2004-04-07 23:12:00) [2]Если у тебя Д6, то обрати внимание на тип LongRec/Bytes
Anatoly Podgoretsky (2004-04-07 23:09:00) [3]kas-t (07.04.04 21:16) [5]
Это шестнадцатиричное представление RGB, где # является признаком и далее слева направа шестнадцатиричные коды RGB
Преобразование делвется с помощью функции StrToInt('$' + два символа из строки) три раза делаешь по два символа
Mihey (2004-04-07 22:40:00) [4]unction ColorToHex(Color: TColor): String;
var
R, G, B: Byte;
begin
Color := ColorToRGB(Color);
R := GetRValue(Color);
G := GetGValue(Color);
B := GetBValue(Color);
ColorToHex := IntToHex(R,2) + IntToHex(G,2) + IntToHex(B,2);
end;
function HexToColor(Color: String): TColor;
var
R, G, B: Byte;
begin
R := StrToInt('$' + Copy(Color, 1, 2));
G := StrToInt('$' + Copy(Color, 3, 2));
B := StrToInt('$' + Copy(Color, 5, 2));
Result := RGB(r, g, b);
end;
Алхимик (2004-04-07 21:19:00) [5]Hex в Dec перевести не могём?
kas-t (2004-04-07 21:16:00) [6]Да это все понятно. Может быть конечно я не правильно выразился но нужно именно из строки "#CCCCCC" или "#FCFCFC" получить именно цвет в RGB? То есть у меня такая строка #FF0000, а нужно что бы было 255.0.0 А с переводом TColor в RGB проблем нет :)...
AxxxE (2004-04-07 20:54:00) [7]// Процедура для конвертации из TColor в RGB
procedure GetRGBValue(const Color: TColor; var Red, Green, Blue: Byte);
begin
red := Color and $FF;
Green := (Color shr 8) and $FF;
Blue := (Color shr 16) and $FF;
end;
// Функция RGB ---> TColor
function SetRGBValue(Red, Green, Blue: Byte): TColor;
begin
Result := $00;
Result := (Result shl 8) or Blue;
Result := (Result shl 8) or Green;
Result := (Result shl 8) or Red;
end;
Взято из примера с DelphiGFX. Ну если просто так дойти не может, ужель нельзя на этом сайте посмотреть?
Stexen (2004-04-07 20:46:00) [8]НУ по-теории оно же трехбайтное должно быть соответсвенно красный первый байт второй зеленый и третий синий
Mihey (2004-04-06 20:38:00) [9]RedValue := GetRValue(C: TColor);
GreenValue := GetGValue(C: TColor);
BlueValue := GetBValue(C: TColor);
Anatoly Podgoretsky (2004-04-06 08:51:00) [10]Он уже RGB