Beispiel #1
0
        public static void Waiting()
        {
            while (true)
            {
                Console.Clear();
                Console.WriteLine("--------Фильтрация изображения----------\n");
                Console.WriteLine("Поместите в папку Debug нужное изображение с именем input.bmp и нажмите любую клавишу для продолжения");
                Console.ReadKey(false);

                bool isImageExist = File.Exists(FileName);
                if (isImageExist)
                {
                    break;
                }

                Console.WriteLine("Изображение не найдено. Попробуйте еще раз");
            }
            ThreadsCount threadsCount;

            while (true)
            {
                Console.Clear();
                Console.Write("Введите количество необходимых потоков (1 или 2): ");

                char inputNumber = Console.ReadKey(false).KeyChar;

                bool isInputSuccess;
                switch (inputNumber)
                {
                case '1':
                {
                    threadsCount   = ThreadsCount.One;
                    isInputSuccess = true;
                    break;
                }

                case '2':
                {
                    threadsCount   = ThreadsCount.Two;
                    isInputSuccess = true;
                    break;
                }

                default:
                    Console.WriteLine("Некоректно введено число! Попробуйте еще раз");
                    Console.ReadKey();
                    continue;
                }

                if (isInputSuccess)
                {
                    break;
                }
            }

            Bitmap inputImage;

            using (var stream = new FileStream(FileName, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                inputImage = new Bitmap(stream);
            }

            IImageFilter filter      = new ColorFilter(threadsCount);
            Bitmap       outputImage = filter.SetFilter(inputImage);

            outputImage.Save("output.bmp", ImageFormat.Bmp);
            Console.Clear();
            Console.WriteLine("На обработку затрачено {0} (мс)\n", filter.Time.ElapsedMilliseconds);
            Console.ReadKey();
        }