ImageEn, unit histogrambox

IEDrawHistogramToBitmap


Declaration

procedure IEDrawHistogramToBitmap(Histogram: TIEHistogram;
                                  DestBitmap: TIEBitmap; Width, Height: integer;
                                  HistKind: THistogramKind; HistStyle: THistogramStyle = hsFilledLines; HistScale: THistogramScale = iehsLinear;
                                  Labels: THistogramLabels = [hlVertical, hlHorizontal]; LabelFont: TFont = nil; TruncateLabels: Boolean = False;
                                  GradientBar: boolean = True; BorderWidth: Integer = 5; BGColor: TColor = clWhite; GrayColor: TColor = clBlack);


Description

Draw a histogram to a bitmap.
Parameter Description
Histogram The source histogram
DestBitmap The bitmap to draw to
Width, Height The size to create the histogram image
HistKind Which channels are shown
HistStyle The styling of the histogram: Solid bars, single lines or filled lines
HistScale The histogram plot scale. Use iehsLinearClipped or iehsLogarithmic on images with a heavy background color, which may create flat histograms
Labels Which labels are shown: hlHorizontal shows range, hlVertical shows values
LabelFont The font of drawn labels, or NIL to use the default
TruncateLabels When enabled, the vertical label will truncate values greater than 1,000, e.g. 455,000 will display as 455k
GradientBar If True, a gradient bar is shown below the histogram graph showing the range
BorderWidth The spacing around the histogram (in pixels)
BGColor The background color of the image
GrayColor The color of the line/bar for a gray histogram (i.e. when HistogramKind is [hkGray])

Specify which channels are shown (multiple can be specified):
Value Description
hkRed Red channel
hkGreen Green channel
hkBlue Blue channel
hkGray Gray-scale level
hkHue Hue (of HSV values)

Note:
You can get the histogram for an image using GetHistogram
To display histograms you can use the THistogramBox component


Image Testing

// Load test image
ImageEnView1.IO.LoadFromFile( 'D:\TestImage.jpg' );

  

// Output the histogram of the gray-scale level
hist := ImageEnView1.Proc.GetHistogram( [hkGray] );
IEDrawHistogramToBitmap( hist, bmp, ImageEnView2.ClientWidth, ImageEnView2.ClientHeight,
                         [hkGray], hsFilledLines, iehsLinearClipped );
ImageEnView2.Update();

  

// Output the histogram of the RGB level
hist := ImageEnView1.Proc.GetHistogram( [hkRed, hkGreen, hkBlue] );
IEDrawHistogramToBitmap( hist, bmp, ImageEnView2.ClientWidth, ImageEnView2.ClientHeight,
                         [hkRed, hkGreen, hkBlue], hsFilledLines, iehsLinearClipped );
ImageEnView2.Update();

  

// Output the histogram of the hue level
Hist := ImageEnView1.Proc.GetHistogram( [hkHue] );
IEDrawHistogramToBitmap( hist, bmp, ImageEnView2.ClientWidth, ImageEnView2.ClientHeight,
                         [hkHue], hsFilledLines, iehsLinearClipped );
ImageEnView2.Update();