C# で画像を使用するのは初めてです。
私はこれをやった:
private bool IsBitonal(string FilePath)
{
Bitmap bitmap = new Bitmap(FilePath);
return (bitmap.PixelFormat == PixelFormat.Format1bppIndexed)
}
これは .png ファイルでは機能しますが、.jpeg ファイルでは機能しません。
画像がモノクロかどうかを見つけるための解決策はありますか?
私はLodingグラフィックスのものを使用しましたが、それも私では機能しません。
private bool IsBitonal(string filePath)
{
bool isBitonal = false;
try
{
Bitmap bitmap = new Bitmap(filePath);
Graphics graphics = Graphics.FromImage(bitmap);
}
catch (Exception ex)
{
isBitonal = true;
}
return isBitonal;
}
ええ、私は トマズの回答から解決策を得ました
C# での私の回答は次のとおりです。
public bool IsBitonal(Bitmap YourCurrentBitmap)
{
Color c;
long Eadges = 0;
long Others = 0;
for (int i = 0; i < YourCurrentBitmap.Width; i++)
{
for (int j = 0; j < YourCurrentBitmap.Height; j++)
{
c = YourCurrentBitmap.GetPixel(i, j);
if (!(c.R == c.G && c.G == c.B)) return false;
if (c.R <= 16||c.R >= 255-16)
Eadges++;
else
Others++;
}
}
double proportion = Eadges / (double)Others;
// here is estimation based on you requirement you can change
return proportion > 10;;
}