Y para terminar podemos dibujar la gráfica en otro TImage con un ancho de 256 píxeles:
Código Delphi
[-]
var
i,j: Integer;
Histograma: Array[0..255] of Integer;
begin
FillChar(Histograma,Sizeof(Histograma),#0);
for j:= 0 to Image1.Picture.Bitmap.Height - 1 do
for i:= 0 to Image1.Picture.Bitmap.Width - 1 do
inc(Histograma[Image1.Picture.Bitmap.Canvas.Pixels[i,j] and $FF]);
j:= 1;
for i:= 1 to 255 do
if Histograma[i] > j then
j:= Histograma[i];
Image2.Canvas.FillRect(Image2.Canvas.ClipRect);
for i:= 0 to 255 do
begin
Image2.Canvas.MoveTo(i,Image2.Height);
Image2.Canvas.LineTo(i,Image2.Height - ((Image2.Height * Histograma[i]) div j));
end;
end;