Graphics code snippet to get a histogram of a VCL TImage its color values.
//From htpp://www.richelbilderbeek.nl/CppGetImageHistogram.htm const std::vector<int> GetImageHistogram(const TImage * const image) { assert(image!=0 && "Image is NULL"); assert(image->Picture->Bitmap!=0 && "Image bitmap is NULL"); assert(image->Picture->Bitmap->PixelFormat == pf24bit && "Image bitmap must be 24 bit"); //Get the width and height from the source const int width = image->Picture->Bitmap->Width; const int height = image->Picture->Bitmap->Height; std::vector<int> histogram(256,0); //There are 256 different color values for (int y=0; y!=height; ++y) { const unsigned char * line = static_cast<const unsigned char *>( image->Picture->Bitmap->ScanLine[y]); for (int x=0; x!=width; ++x) { const int grey = (line[x*3+0] + line[x*3+1] + line[x*3+2]) / 3; ++histogram[grey]; } } return histogram; }