C# Asp.net确定上载的图像黑白区域%

C# Asp.net确定上载的图像黑白区域%,c#,asp.net,C#,Asp.net,这是否可能构建一个asp.net应用程序,能够确定上传图像的黑白区域% 例如: 用户上传图片后,应用程序将计算黑白区域 输出: **白色:*32% **黑色:*68%您可以使用位图类。使用属性Width和Height可以计算总像素数。使用方法GetPixel可以获得特定像素的颜色。要将已知颜色(如color.White)与其他颜色进行比较,可以使用ToArgb方法 Image yourImage = ... Bitmap bitmap = new Bitmap(yourImage); int

这是否可能构建一个asp.net应用程序,能够确定上传图像的黑白区域%

例如:

用户上传图片后,应用程序将计算黑白区域

输出:

**白色:*32%


**黑色:*68%

您可以使用
位图类。使用属性
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;
Image yourImage=。。。
位图位图=新位图(您的图像);
int whiteColorCount=0;
int blackColorCount=0;
对于(int i=0;i
是的,您可以将图像转换为位图并使用此方法。它返回设置颜色的像素数。获取黑白像素数并计算黑白百分比

    // 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;
}
//返回匹配的像素数。
私有int CountPxl(位图bmap,颜色yourColor)
{
//循环通过像素。
int匹配=0;
对于(int y=0;y
这绝对是可能的。您到底在哪里遇到问题?Image yourImage=Image.FromFile(FileUploadControl.FileName);但是得到这个错误:System.IO.FileNotFoundException:test。png@KyLim例外情况的名称是不言自明的。是否确实指向文件的正确路径?可能您缺少一个
映射路径
,因此代码知道在哪里查找。