Esempio n. 1
0
        /// <summary>
        /// Функция преобразует матрицу интенсивностей синей составляющей изображения и возвращает список объектов класса ColorInPalette
        /// </summary>
        private static List <ColorInPalette> GetColorTable(int[,] clrArr)
        {
            var            plt    = new List <ColorInPalette>();
            var            valTab = new List <int>();
            int            p      = 0;
            ColorInPalette cip;

            for (int i = 0; i < clrArr.GetLength(0) && p < 256; i++)
            {
                for (int j = 0; j < clrArr.GetLength(1) && p < 256; j++)
                {
                    if (!valTab.Contains(clrArr[i, j]))
                    {
                        valTab.Add(clrArr[i, j]);
                        p++;
                    }
                }
            }

            for (int i = 0; i < valTab.Count; i++)
            {
                cip = new ColorInPalette(valTab[i], i);
                plt.Add(cip);
            }

            return(plt);
        }
Esempio n. 2
0
        // Для сортировки палитры написана функция SortPalette(). Функция преобразует список List<ColorInPalette>, полученный на шаге 6, и использует встроенный метод структуры List, позволяющий
        // сортировать список по одному из полей.
        // Затем она переписывает значения интенсивностей и индексов в двумерный массив.
        private static int[,] SortPalette(List <ColorInPalette> palette)
        {
            int[,] sortPlt = new int[palette.Count, 2];
            palette.Sort();
            for (int i = 0; i < palette.Count; i++)
            {
                ColorInPalette c = palette[i];
                sortPlt[i, 0] = c.Index;
                sortPlt[i, 1] = c.Value;
            }

            return(sortPlt);
        }