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

How to Convert RGB Color to HSB (HSV) Color

By , About.com Guide

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

Holiday Central

What to eat, where to go, fun things to do and how to save money on the perfect gifts. More >

Family Tech Center

Stay connected and entertained with reviews on tips on the latest HDTVs, cellphones and more. More >

  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.