private void GenImage(string path, DicomDecoder dicom) { _formShow = new FormShow(); var drawArea = new Bitmap(_formShow.pictureBox1.Size.Width, _formShow.pictureBox1.Size.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb); //_formShow.pictureBox1.Image = drawArea; int index = 0; string pathtext = path; _currentIndexlayer = index; Graphics g; g = Graphics.FromImage(drawArea); Brush gBrush = Brushes.White; Brush wBrush = Brushes.Black; for (int w = 0; w < dicom.width; ++w) { for (int h = 0; h < dicom.height; ++h) { g.FillRectangle( dicom.Pixels16[w * dicom.height + h] >= 32900 ? gBrush : wBrush, h, w, 1, 1); } } int a = 8; _formShow.Text = dicom.DicomFileName; //_formShow.pictureBox1.Image = drawArea; var filepath = Path.GetDirectoryName(pathtext); var filename = Path.GetFileNameWithoutExtension(pathtext); //Bitmap bitmap = new Bitmap(filepath + "\\jpg\\" + filename + ".jpg"); var resized = ResizeBitmap(drawArea, drawArea.Width / a, drawArea.Height / a); Directory.CreateDirectory(filepath + "\\png\\"); resized.Save(filepath + "\\png\\" + filename + ".png", ImageFormat.Png); g.Dispose(); }
/// <summary> /// Получение слоя. Считывание Dicom файла. Применение фильтров к изображению. /// </summary> /// <param name="file">Имя файла(путь)</param> /// <returns></returns> private Layer GetLayer(string file) { //Декодирование Dicom файла DicomDecoder dicom = new DicomDecoder { DicomFileName = file }; //Усредняющий фильтр dicom.Pixels16 = AveragingFilter(dicom.Pixels16Origin, dicom.width, dicom.height, 5); GenImage(file, dicom); var filepath = Path.GetDirectoryName(file); var filename = Path.GetFileNameWithoutExtension(file); Bitmap bitmap = new Bitmap(filepath + "\\png\\" + filename + ".png"); //Создание слоя return(new Layer { Dicom = dicom, //Данные, полученные из Dicom файла ImageFromJpg = bitmap }); }