/// <summary> /// возвращает список соседних элементов пикселя /// </summary> /// <param name="x">координата по Х</param> /// <param name="y">координата по У</param> /// <returns></returns> private int getElems(int x, int y, int count, int offStart = -1) { int i, j, z; i = j = z = 0; foreach (var ix in Enumerable.Range(x + offStart, count)) { foreach (var iy in Enumerable.Range(y + offStart, count)) { if (ix < 0 || iy < 0 || ix >= curBitmap.Width || iy >= curBitmap.Height) { curPixelList[i][j] = new PxColor(null); continue; } try { curPixelList[i][j] = new PxColor(curBitmap.GetPixel(ix, iy), true); } catch (ArgumentOutOfRangeException) { curPixelList[i][j] = new PxColor(null); } j++; z++; } j = 0; i++; } return(z); }
/// <summary> /// обнуляет список текущих элементов /// </summary> /// <param name="x"></param> /// <param name="y"></param> private void clearCurMxs(int size) { PxColor temp = new PxColor(Color.FromArgb(0, 0, 0, 0), false); curPixelList.Clear(); curPixelList.Capacity = size; foreach (var i in Enumerable.Range(0, size)) { curPixelList.Add(new List <PxColor>(size)); foreach (var j in Enumerable.Range(0, size)) { curPixelList[i].Add(temp); } } red.Clear(); grin.Clear(); blue.Clear(); }
/// <summary> /// возвращает список соседних элементов пикселя /// </summary> /// <param name="x">координата по Х</param> /// <param name="y">координата по У</param> /// <returns></returns> private int getElems(int x, int y, int count, int offStart=-1) { int i, j,z; i = j = z =0; foreach (var ix in Enumerable.Range(x + offStart, count)) { foreach (var iy in Enumerable.Range(y + offStart, count)) { if (ix < 0 || iy < 0 || ix >= curBitmap.Width || iy >= curBitmap.Height) { curPixelList[i][j] = new PxColor(null); continue; } try { curPixelList[i][j] = new PxColor(curBitmap.GetPixel(ix, iy), true); } catch (ArgumentOutOfRangeException) { curPixelList[i][j] = new PxColor(null); } j++; z++; } j = 0; i++; } return z; }
/// <summary> /// обнуляет список текущих элементов /// </summary> /// <param name="x"></param> /// <param name="y"></param> private void clearCurMxs(int size) { PxColor temp = new PxColor(Color.FromArgb(0, 0, 0, 0), false); curPixelList.Clear(); curPixelList.Capacity = size; foreach (var i in Enumerable.Range(0, size)) { curPixelList.Add(new List<PxColor>(size)); foreach (var j in Enumerable.Range(0, size)) curPixelList[i].Add(temp); } red.Clear(); grin.Clear(); blue.Clear(); }