Четыре варианта извлечения RGB компонент из цвета
Автор: Fenik
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Четыре варианта извлечения RGB компонент из цвета
Какой из них быстрее - не знаю;
если проверите, то напишите мне.
Зависимости: Windows, Graphics
Автор: Fenik, chook_nu@uraltc.ru, Новоуральск
Copyright: Из разных источников
Дата: 4 июня 2002 г.
***************************************************** }
procedure GetRGB(Color: TColor; var R, G, B: Byte; Variant: Byte = 1);
{Четыре варианта извлечения RGB компонент цвета;
какой из них быстрее - не знаю;
если проверите то напишите мне <chook_nu@uraltc.ru> }
begin
case Variant of
1:
begin
R := Lo(Color); {красный}
G := Lo(Color shr 8); {зелёный}
B := Lo((Color shr 8) shr 8); {синий}
end;
2:
begin
R := Color mod $100;
G := Color div $100 mod $100;
B := Color div $10000;
end;
3:
begin
R := Color and $FF;
G := (Color and $FF00) shr 8;
B := (Color and $FF0000) shr 16;
end;
4:
begin
R := GetRValue(ColorToRGB(Color));
G := GetGValue(ColorToRGB(Color));
B := GetBValue(ColorToRGB(Color));
end;
end;
end;
|