Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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();
        }
Beispiel #3
0
 /// <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;
 }
Beispiel #4
0
 /// <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();
 }