可能アップロードされた画像を確認できるasp.netアプリケーションを作成する白黒領域%?アップロードされた画像を確認する白黒領域%
ユーザ後、アプリケーションは、黒と白の面積を計算します。
出力:
**ホワイト:** 32%
ブラック**:** 68%
可能アップロードされた画像を確認できるasp.netアプリケーションを作成する白黒領域%?アップロードされた画像を確認する白黒領域%
ユーザ後、アプリケーションは、黒と白の面積を計算します。
出力:
**ホワイト:** 32%
ブラック**:** 68%
あなたは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;
イメージyourImage = Image.FromFile(FileUploadControl.FileName); ただし、このエラーが発生します。System.IO.FileNotFoundException:test.png – KyLim
@ KyLim例外の名前はわかりやすいです。ファイルの正しいパスを指していますか?たぶんあなたは 'MapPath'を見逃しているので、コードはどこを見るかを知っています。 –
はい、画像をビットマップに変換してこの方法を使用できます。それはあなたの設定された色のピクセル数を返します。黒と白のピクセルの数を取得し、黒と白の何パーセントを計算します。
// 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;
}
間違いなく可能です。どこに問題がありますか? –