using (GdPictureImaging gdpictureImaging = new GdPictureImaging())
{
int imageID = gdpictureImaging.CreateGdPictureImageFromFile("image.jpg", false);
// Get the red channel histogram and the image dimensions.
int [] histo = new int[256];
gdpictureImaging.HistogramGetRed(imageID, ref histo);
int count = gdpictureImaging.GetWidth(imageID) * gdpictureImaging.GetHeight(imageID);
gdpictureImaging.ReleaseGdPictureImage(imageID);
// Create an image representing the histogram.
// The image has the same width as the histogram and its height is 1000.
int histogramID = gdpictureImaging.CreateNewGdPictureImage(256, 1000, 24, Color.White);
for ( int i = 0; i < 256; i ++ )
{
int value = histo[i] * 1000 / count;
for (int j = 0; j < value; j++)
{
gdpictureImaging.PixelSetColor(histogramID, i, j, Color.Red);
}
}
gdpictureImaging.SaveAsPNG(histogramID, "histo.png");
gdpictureImaging.ReleaseGdPictureImage(histogramID);
}