Mega Code Archive

 
Categories / Delphi / API
 

How do i convert a color to a shade of gray

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;