Pixel Data to Byte Array


We are often asked how to retrieve the pixel data of a DicomImage into a Byte array. The following code will load an image and copy the pixel data into a byte array.

    
    DicomImage img = new DicomImage(@"C:\...");
    Array[] sysArray = (Array[])img.RawPixels;
    Array FrameSysArray = sysArray[0];
    byte[] bytesArray = new byte[FrameSysArray.Length * img.RawPixels.Length];
    for (int frameCount = 0; frameCount < sysArray.Length; frameCount++)
    {
     int offset = frameCount * FrameSysArray.Length;
     Buffer.BlockCopy(sysArray[frameCount], 0, bytesArray, offset, FrameSysArray.Length);        	 
    }
	

If however you already know the type of data contained within the object Pixels and that is the type you require,then the code becomes simply a pass. (short array shown for 16bit images)

    short[,,] data = (ushort[,,])dicomViewer1.CurrentImage.Pixels;



We use cookies to give you the best possible experience on our website. By continuing to use this website, you agree with our use of cookies. for more information please click HERE