Главная страница | назад





Article #17728: How do I convert a color to a shade of gray?

 Question and Answer Database

FAQ2728D.txt   How do I convert a color to a shade of gray?
Category   :Windows API
Platform    :All
Product    :All 32 bit  

Question:
How do I convert a color to a shade of gray?


Answer:
The following example shows how to convert an RGB color to the
equivalent color of gray using the same method that a black and white
television would render a color broadcast:

function RgbToGray(RGBColor : TColor) : TColor;
var
  Gray : byte;
begin
  Gray := Round((0.30 * GetRValue(RGBColor)) +
                (0.59 * GetGValue(RGBColor)) +
                (0.11 * GetBValue(RGBColor )));
  Result := RGB(Gray, Gray, Gray);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Shape1.Brush.Color := RGB(255, 64, 64);
  Shape2.Brush.Color := RgbToGray(Shape1.Brush.Color);
end;


7/16/98 4:31:28 PM
 

Last Modified: 01-SEP-99