答案 0 :(得分:1)
您可以使用Bitmap
课程。使用属性Width
和Height
,您可以计算总像素数。使用方法GetPixel
,您可以获得特定像素的颜色。要将Color.White
等已知颜色与其他颜色进行比较,您可以使用ToArgb
方法。
Image yourImage = ...
Bitmap bitmap = new Bitmap(yourImage);
int whiteColorCount = 0;
int blackColorCount = 0;
for (int i = 0; i < bitmap.Width; i++)
{
for (int c = 0; c < bitmap.Height; c++)
{
int pixelHexColor = bitmap.GetPixel(i, c).ToArgb();
if (pixelHexColor == Color.White.ToArgb())
{
whiteColorCount++;
}
else if (pixelHexColor == Color.Black.ToArgb())
{
blackColorCount++;
}
}
}
long totalPixelCount = bitmap.Width * bitmap.Height;
double whitePixelPercent = whiteColorCount / (totalPixelCount / 100.0);
double blackPixelPercent = blackColorCount / (totalPixelCount / 100.0);
double otherPixelPercent = 100.0 - whitePixelPercent - blackPixelPercent;
答案 1 :(得分:0)
是的,您可以将图像转换为位图并使用此方法。它返回您设置颜色的像素数。获取黑白像素的数量并计算黑白的百分比。
// Return the number of matching pixels.
private int CountPxl(Bitmap bmap, Color yourColor)
{
// Loop through the pixels.
int matches = 0;
for (int y = 0; y < bmap.Height; y++)
{
for (int x = 0; x < bmap.Width; x++)
{
if (bmap.GetPixel(x, y) == yourColor) matches++;
}
}
return matches;
}