Scale Dicom PixelData or scale DicomImage and convert it to byte array

352 Views Asked by At

I'm trying to scale a dicom slice which its resolution, 1024*1024 (row*columns). I can really scale the slice, but my problem is: When I convert the scaling slice to array of bytes and write it to the dicom file, I can see nothing as you see in the picture below.

enter image description here

var renderImage = new DicomImage(@"D:\11_29_2022_17_21_52\"+i);
                    
renderImage.Scale = 0.5;//Scaling factor
                  
Bitmap renderdImageAsBitmap =renderImage.RenderImage().As<Bitmap>();

renderdImageAsBitmap.Save(@"D:\test\"+i+".jpg", ImageFormat.Jpeg);
//now get the image as jpeg or bitmap i tried the both 
                    
using (IImage renderedImage = renderImage.RenderImage())
{
   Bitmap bitmap = renderedImage.As<Bitmap>();

   // Copy image to byte array using MemoryStream
   using (MemoryStream targetStream = new MemoryStream())
   {
     bitmap.Save(targetStream, ImageFormat.Jpeg);
     newRawBytes = targetStream.ToArray();
     //get the image as rawbytes to add it to my dicomfile
   }
}

dicomFile.Dataset.AddOrUpdate(DicomTag.PixelData, newRawBytes); //Add the rawbyte to dicomfile
0

There are 0 best solutions below