private void openPGMfile(int fileNumber) { if (fileNumber == 0) { CurrentFilePath = open.FileNames[0].ToString(); //Пътят до файла; } else if (fileNumber == 1) { CurrentFilePath = open.FileNames[1].ToString(); //Пътят до файла; } StreamReader ImageStreamReader = new StreamReader(CurrentFilePath); String LineBuffer; //за запаметяване размерите на изображението дължина и ширина String[] ExtractDimension; PurgeGlobalData(); //Функция за нулиране на променливите, които се инизиализират в началото, // използват се в случай, че се отвори следваща картинка; LineBuffer = "#"; //Проверка дали файлът не започва с коментар "#"; do { LineBuffer = ImageStreamReader.ReadLine(); } while (LineBuffer.StartsWith("#")); // Проверка дали файлът започва с подходяща информация за форматът си в // противен случай се извежда подходящо съобщение if (LineBuffer.StartsWith("P2")) { ImageType = "P2"; } else { ImageStreamReader.Close(); MessageBox.Show("File error!"); PurgeGlobalData(); } //Проверка за други коментари в файла и прочитане на размерите за изображението LineBuffer = "#"; do { LineBuffer = ImageStreamReader.ReadLine(); } while (LineBuffer.StartsWith("#")); // Прочетените размери на изображението се запаметяват в масива ExtractDimensions // след което стойностите им се преобразуват в целочислен вид и се предават на // Bitmap изображението ExtractDimension = LineBuffer.Split(' '); ImageHeight = int.Parse(ExtractDimension[1]); finalImageHeight = ImageHeight; ImageWidth = int.Parse(ExtractDimension[0]); finalImageWidth = ImageWidth; CurrentBitmap = new Bitmap(ImageWidth, ImageHeight); CurrentBitmap2 = new Bitmap(ImageWidth, ImageHeight); FinalBitmap = new Bitmap(finalImageWidth, finalImageHeight); // Ако файлът започва с правилната първоначална информация "P2", прочитат се // стойностите за сивия цвят от него, преобразуват се в целочислен вид и // се предават на променливата ImageMaxGreyValue; if (ImageType == "P2") { LineBuffer = "#"; do { LineBuffer = ImageStreamReader.ReadLine(); } while (LineBuffer.StartsWith("#")); ImageMaxGreyValue = int.Parse(LineBuffer); } if (fileNumber == 0) { CurrentFile = ImageStreamReader.ReadToEnd(); CurrentFile = CurrentFile.Replace("\r", " "); CurrentFile = CurrentFile.Replace("\n", " "); } else if (fileNumber == 1) { CurrentFile2 = ImageStreamReader.ReadToEnd(); CurrentFile2 = CurrentFile2.Replace("\r", " "); CurrentFile2 = CurrentFile2.Replace("\n", " "); } //Затваряне на входния поток и извикане на функцията за изобразяване BiuldCanvas() ImageStreamReader.Close(); if (fileNumber == 0) { BuildCanvas(0); } else if (fileNumber == 1) { BuildCanvas(1); } }