Пример #1
0
        private bool ShowImage()
        {
            try
            {
                DicomElement element = null;
                element = _dsImage.FindFirstElement(null, DemoDicomTags.PixelData, true);
                int bitmapCount = _dsImage.GetImageCount(element);
                if (bitmapCount > 0)
                {
                    FreeImage();
                    if (bitmapCount == 1)
                    {
                        if (element != null)
                        {
                            RasterImage image;

                            image = _dsImage.GetImage(element, 0, 0, RasterByteOrder.Gray, _getImageFlags);

                            _viewer.Image = image;
                        }
                    }
                    else
                    {
                        if (element != null)
                        {
                            LoadBitmapList(element);
                        }
                    }

                    if (element != null)
                    {
                        _imageInfo = _dsImage.GetImageInformation(element, 0);
                    }

                    if ((_dicomAnnotationsUtilities != null) && (_viewer.Image != null))
                    {
                        _dicomAnnotationsUtilities.DisplayWidth  = _viewer.Image.Width;
                        _dicomAnnotationsUtilities.DisplayHeight = _viewer.Image.Height;
                    }

                    return(true);
                }
                else
                {
                    Messager.ShowInformation(this, "Please note that this dataset doesn't include any images.");
                }
            }
            catch (Exception exception)
            {
                System.Diagnostics.Debug.Assert(false);
                throw exception;
            }
            return(false);
        }
Пример #2
0
        private void _mnuFileSave_Click(object sender, EventArgs e)
        {
            SaveFileDialog dlg = new SaveFileDialog();

            dlg.Filter      = "DCM Files (*.dcm)|*.dcm|All files (*.*)|*.*";
            dlg.FilterIndex = 0;

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                // Get Image Information
                DicomImageInformation imageInfo = _DataSet.GetImageInformation(_PixelElement, 0);

                // Replace image information in DicomDataSet
                _DataSet.SetImage(null, _rasterImageViewer.Image, imageInfo.Compression, imageInfo.PhotometricInterpretation, 0, 0, DicomSetImageFlags.AutoSaveOverlays);

                // Save to disk
                _DataSet.Save(dlg.FileName, DicomDataSetSaveFlags.None);
            }
        }
Пример #3
0
        void Convert(DicomDataSet ds)
        {
            DicomElement element;

            element = ds.FindFirstElement(null, DemoDicomTags.PixelData, true);
            if (element == null)
            {
                continue;
            }

            for (int i = 0; i < ds.GetImageCount(element); i++)
            {
                RasterImage           image;
                DicomImageInformation info = ds.GetImageInformation(element, i);
                image = ds.GetImage(element, i, 0, info.IsGray ? RasterByteOrder.Gray : RasterByteOrder.Rgb,
                                    DicomGetImageFlags.AutoApplyModalityLut |
                                    DicomGetImageFlags.AutoApplyVoiLut |
                                    DicomGetImageFlags.AllowRangeExpansion);
                //ds.
            }
        }
Пример #4
0
        private void SetDefaults()
        {
            DicomImageInformation imageInfo;

            try
            {
                imageInfo = ds.GetImageInformation(element, 0);

                //
                // Initialize Bits Per Pixel
                //
                if (imageInfo.BitsPerPixel == 8)
                {
                    radioButton8.Checked = true;
                }
                else if (imageInfo.BitsPerPixel == 12)
                {
                    radioButton12.Checked = true;
                }
                else if (imageInfo.BitsPerPixel == 16)
                {
                    radioButton16.Checked = true;
                }
                else if (imageInfo.BitsPerPixel == 24)
                {
                    radioButton24.Checked = true;
                }

                //
                // Initialize Photometric Interpretation
                //
                if (imageInfo.PhotometricInterpretation == DicomImagePhotometricInterpretationType.Monochrome2)
                {
                    radioButtonMonochrome.Checked = true;
                }
                else if (imageInfo.PhotometricInterpretation == DicomImagePhotometricInterpretationType.PaletteColor)
                {
                    radioButtonPalette.Checked = true;
                }
                else if (imageInfo.PhotometricInterpretation == DicomImagePhotometricInterpretationType.Rgb)
                {
                    radioButtonRGB.Checked = true;
                }

                //
                // Initialize Compression
                //
                if (imageInfo.Compression == DicomImageCompressionType.None)
                {
                    radioButtonNone.Checked = true;
                }
                else if (imageInfo.Compression == DicomImageCompressionType.JpegLossy)
                {
                    radioButtonJPEGLossy.Checked = true;
                }
                else if (imageInfo.Compression == DicomImageCompressionType.JpegLossless)
                {
                    radioButtonJpegLossless.Checked = true;
                }
                else if (imageInfo.Compression == DicomImageCompressionType.JpegLsLossy)
                {
                    radioButtonJpegLsLossy.Checked = true;
                }
                else if (imageInfo.Compression == DicomImageCompressionType.JpegLsLossless)
                {
                    radioButtonJpegLsLossless.Checked = true;
                }
                else if (imageInfo.Compression == DicomImageCompressionType.J2kLossy)
                {
                    radioButtonJ2kLossy.Checked = true;
                }
                else if (imageInfo.Compression == DicomImageCompressionType.J2kLossless)
                {
                    radioButtonJ2kLossless.Checked = true;
                }
                else if (imageInfo.Compression == DicomImageCompressionType.Rle)
                {
                    radioButtonRunLength.Checked = true;
                }
                checkBoxUseExistingImage.Checked = true;
                buttonSelectNewImage.Enabled     = false;
            }
            catch
            {
                radioButton24.Checked            = true;
                radioButtonRGB.Checked           = true;
                radioButtonNone.Checked          = true;
                checkBoxUseExistingImage.Checked = false;
                buttonSelectNewImage.Enabled     = true;
            }

            textBoxNewImageFileName.Text = "";
            _TransferSyntax = Utils.GetStringValue(ds, DemoDicomTags.TransferSyntaxUID);

            _UseNewImageFile = !checkBoxUseExistingImage.Checked;
        }
Пример #5
0
        void test()
        {


            string imgFile = @"C:\Images\Chest.dcm";
            try
            {

                using (Leadtools.Commands.Demos.WaitCursor wait = new Leadtools.Commands.Demos.WaitCursor())
                {

                    DicomDataSet ds = new DicomDataSet();
                    ds.Load(imgFile, DicomDataSetLoadFlags.LoadAndClose);

                    DicomElement pixelDataElement = ds.FindFirstElement(null, DicomTag.PixelData, true);
                    DicomImageInformation imageInformation = ds.GetImageInformation(pixelDataElement, 0);
                    ds.SetImages(pixelDataElement, _CurrCell.Image.CloneAll(), imageInformation.Compression, imageInformation.PhotometricInterpretation,
                                _CurrCell.Image.BitsPerPixel, 2, DicomSetImageFlags.AutoSetVoiLut);
                    ds.Save(imgFile, DicomDataSetSaveFlags.None);
                   }
            }
            catch (Exception ex)
            {
               

            }
           
        }