私のアプリケーションでは、画像を読み込んでおり、似たような色を検出できるようにしたいと考えています。したがって、色を選択した場合、アプリケーションが同じ (またはほぼ同じ) 色のすべてのピクセルを見つけられるようにする必要があります。これは、マウス クリックのポイントとビットマップの終わりの間の垂直方向に見える検出システムのために私が書いたものです。
for (int y = mouseY; y < m_bitmap.Height; y++)
{
Color pixel = m_bitmap.GetPixel(mouseX, y);
//check if there is another color
if ((pixel.R > curcolor.R + treshold || pixel.R < curcolor.R - treshold) ||
(pixel.G > curcolor.G + treshold || pixel.G < curcolor.G - treshold) ||
(pixel.B > curcolor.B + treshold || pixel.B < curcolor.B - treshold))
{ //YESSSSS!
if ((y - ytop > minheight)&&(curcolor != Color.White)) //no white, at least 15px height
{
colorlayers.Add(new ColorLayer(curcolor, y - 1, ytop));
}
curcolor = pixel;
ytop = y;
}
}
これが最善の方法でしょうか?なんだか黄色がかった色と相性が良さそうです。