Delphi Programming

  1. Home
  2. Computing & Technology
  3. Delphi Programming

How to Convert RGB Color to HSB (HSV) Color

By Zarko Gajic, About.com

The HSV (Hue, Saturation, Value) model, also called HSB (Hue, Saturation, Brightness), defines a color space commonly used in graphics applications. Hue value ranges from 0 to 360, Saturation and Brightness values range from 0 to 100%.

The RGB (Red, Green, Blue) is also used, primarily in web design. When written, RGB values are commonly specified using three integers between 0 and 255, each representing red, green, and blue intensities.

Here's a function to convert a RGB color to a HSV color.

uses Math;

type
   TRGBColor = record
     Red,
     Green,
     Blue : Byte;
   end;

   THSBColor = record
     Hue,
     Saturnation,
     Brightness : Double;
   end;

function RGBToHSB(rgb : TRGBColor) : THSBColor;
var
   minRGB, maxRGB, delta : Double;
   h , s , b : Double ;
begin
   H := 0.0 ;
   minRGB := Min(Min(rgb.Red, rgb.Green), rgb.Blue) ;
   maxRGB := Max(Max(rgb.Red, rgb.Green), rgb.Blue) ;
   delta := ( maxRGB - minRGB ) ;
   b := maxRGB ;
   if (maxRGB <> 0.0) then s := 255.0 * Delta / maxRGB
   else s := 0.0;
   if (s <> 0.0) then
   begin
     if rgb.Red = maxRGB then h := (rgb.Green - rgb.Blue) / Delta
     else
       if rgb.Green = maxRGB then h := 2.0 + (rgb.Blue - rgb.Red) / Delta
       else
         if rgb.Blue = maxRGB then h := 4.0 + (rgb.Red - rgb.Green) / Delta
   end
   else h := -1.0;
   h := h * 60 ;
   if h < 0.0 then h := h + 360.0;
   with result do
   begin
     Hue := h;
     Saturnation := s * 100 / 255;
     Brightness := b * 100 / 255;
   end;
end;

Delphi tips navigator:
» MORE TIPS
« How to Move ListBox Items with the Mouse (Drag and Drop)

More Delphi Programming Quick Tips

Explore Delphi Programming

About.com Special Features

Delphi Programming

  1. Home
  2. Computing & Technology
  3. Delphi Programming
  4. Coding Delphi Applications
  5. Delphi Tips and Tricks
  6. Delphi 2006 Tips
  7. How to Convert RGB Color to HSB (HSV) Color

©2009 About.com, a part of The New York Times Company.

All rights reserved.