private static int GetNumberOfColors(Bitmap bmp, int lineNumber)
{
if(lineNumber >= bmp.Height)
return 0; //guard against math errors by the caller
var colors = new HashSet<int>();
for(var x = 0; x < bmp.Width; x++)
{
var pixel = bmp.GetPixel(x, lineNumber);
int pixelColor = pixel.ToArgb();
if (!colors.Contains(pixelColor))
{
colors.Add(pixelColor);
}
}
return colors.Count;
}