Load Dicom image and display it - using ClearCanvas library

前端 未结 2 618
说谎
说谎 2020-12-14 13:03

This is a very narrow and specific question, but I know there are someone else out there using this, so I\'ll keep my fingers crossed and hope anyone of you pics this questi

2条回答
  •  误落风尘
    2020-12-14 13:29

    Okay, I figured it out.. There might be some more ways of achieving this, but this is what I did. Now I have a Wpf Image bound to a property which provides the bitmap data. The following is the property used to provide the Bitmap data.

    public BitmapSource CurrentFrameData
    {
        get
        {
            LocalSopDataSource _dicomDataSource = 
                new LocalSopDataSource(_dicomFilePath);
            var imageSop = new ImageSop(_dicomDataSource);
    
            IPresentationImage presentationImage = 
                PresentationImageFactory.Create(imageSop.Frames[CurrentFrame]);
    
            int width = imageSop.Frames[CurrentFrame].Columns;
            int height = imageSop.Frames[CurrentFrame].Rows;
    
            Bitmap bmp = presentationImage.DrawToBitmap(width, height);
            BitmapSource output = Imaging.CreateBitmapSourceFromHBitmap(
              bmp.GetHbitmap(),
              IntPtr.Zero,
              Int32Rect.Empty,
              BitmapSizeOptions.FromWidthAndHeight(width, height));
    
              return output;
        }
    }
    

    Note that this is a very straight forward solution. One might e.g. want to do stuff like preloading the pictures etc to avoid heavy load when scrolling multiframe images. But for the "howto display the image" question - this should answer it..

提交回复
热议问题