簡體   English   中英

在.NET中搜索數組以匹配顏色的最快方法

[英]Fastest method to search an array for matching color in .NET

我正在從位圖使用GetPixel(使用LockBits,因此那里沒有效率問題),並且需要盡快在顏色數組中搜索顏色在數組中的位置。 我有很大的位圖要遍歷。

...                
prevColor = Color.FromArgb(255, r, g, b);

int count = 1536;
for (int i = 0; i < count; i++)
{
   if (prevColor == theColorScale[i])
   {
       loc = i;
       break;
   }
}

有什么建議么?

接受陳述的問題

字典具有O(1)查找

Dictionary<color, Int32> colors = new Dictionary<color, Int32>();
...
loc = colors[prevColor];

詞典中的鍵(顏色)必須唯一

您可以使用列表並使用.IndexOf()搜索嗎?

...
List<Color> colorScale;
/* add colors */
loc = colorScale.IndexOf(prevColor);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM