0

2つの画像のピクセルフォーマットを比較するにはどうすればよいですか?

私はこれを試しました:

if (img1.PixelFormat > img2.PixelFormat)

しかし、「Format8bppIndexed」は「Format24bppRgb」よりも大きいと評価されました

私は何が間違っているのですか?

4

3 に答える 3

1

比較は有効ですが、列挙の値を比較しているだけなので、結果は値が定義された順序によって異なります。

画像のフォーマットを比較する必要がある場合は、自分でルールを作成する必要があります。どの値が他の値より「大きい」かは、アプリケーションによって異なります。

@Odedが彼のコメントで示唆しているように、比較のために正しい相対値(色深度)を返すキー付きのキーを作成して適切な結果を返し、それをテストに使用することができますDictionaryPixelFormat

于 2011-11-20T21:51:23.927 に答える
1

画像をビット深度で比較したい場合は、次のことを試してください。これでうまくいきました。

/// <summary>
/// Returns the bit depth of <paramref name="image"/>.
/// </summary>
public static int GetBitDepth(this Image image)
{
    return ((int) image.PixelFormat >> 8) & 0xFF;
}
于 2012-01-17T13:14:56.367 に答える