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