2つの画像のピクセルフォーマットを比較するにはどうすればよいですか?
私はこれを試しました:
if (img1.PixelFormat > img2.PixelFormat)
しかし、「Format8bppIndexed」は「Format24bppRgb」よりも大きいと評価されました
私は何が間違っているのですか?
2つの画像のピクセルフォーマットを比較するにはどうすればよいですか?
私はこれを試しました:
if (img1.PixelFormat > img2.PixelFormat)
しかし、「Format8bppIndexed」は「Format24bppRgb」よりも大きいと評価されました
私は何が間違っているのですか?
比較は有効ですが、列挙の値を比較しているだけなので、結果は値が定義された順序によって異なります。
画像のフォーマットを比較する必要がある場合は、自分でルールを作成する必要があります。どの値が他の値より「大きい」かは、アプリケーションによって異なります。
@Odedが彼のコメントで示唆しているように、比較のために正しい相対値(色深度)を返すキー付きのキーを作成して、適切な結果を返し、それをテストに使用することができますDictionary
。PixelFormat
画像をビット深度で比較したい場合は、次のことを試してください。これでうまくいきました。
/// <summary>
/// Returns the bit depth of <paramref name="image"/>.
/// </summary>
public static int GetBitDepth(this Image image)
{
return ((int) image.PixelFormat >> 8) & 0xFF;
}