如何比較2個圖像的像素格式?C#比較像素格式
我已經試過這樣:
if (img1.PixelFormat > img2.PixelFormat)
但 「Format8bppIndexed」 得到評爲比 「Format24bppRgb」
我在做什麼錯更大?
如何比較2個圖像的像素格式?C#比較像素格式
我已經試過這樣:
if (img1.PixelFormat > img2.PixelFormat)
但 「Format8bppIndexed」 得到評爲比 「Format24bppRgb」
我在做什麼錯更大?
的比較是有效的,但你只是比較枚舉的值這樣的結果將取決於值中定義的順序。
如果你需要比較的圖像的格式,您將不得不自己制定規則。哪個值「大於」另一個將取決於您的應用程序。
由於@Oded表明在他的評論,你可以創建與返回您比較返回有意義的結果,並使用您的測試正確的相對值(色深)的PixelFormat
鍵控Dictionary
。
如果你想通過自己的位深度的圖像進行比較,請嘗試以下,這爲我工作:
/// <summary>
/// Returns the bit depth of <paramref name="image"/>.
/// </summary>
public static int GetBitDepth(this Image image)
{
return ((int) image.PixelFormat >> 8) & 0xFF;
}
首先,它會GOOT知道什麼是「大」的意思;例如那些命令的順序是:Format16bppArgb1555,Format16bppGrayScale,Format16bppRgb555和Format16bppRgb565 – Lucero
我會和最高顏色深度的人解決。我在看那些枚舉值。即時通訊不知道要放在頂部,並把它們按最低顏色深度排列。 MSDN不是很清楚這一點。 – Yustme
嗯,真的沒有「更大的顏色深度」 - 它們是不同的,但我不能說哪一個比另一個更大。你需要找出你的需求是什麼,然後再實施它... – Lucero