Exception when creating Bitmap from byte array

When I read out the sw.bmp file from the sd card into an array, and then try to instantiate a Bitmap object, I get an exception.

public static void Main()
        {
                        // Mount SD Card stuff
            SDCard sd_card = new SDCard();

            sd_card.Mount();

            string rootDirectory = VolumeInfo.GetVolumes()[0].RootDirectory;

            //sw.bmp
            FileStream fileHandle = new FileStream(rootDirectory+@ "\sw.bmp", FileMode.Open, FileAccess.Read);

            byte[] swImage = new byte[fileHandle.Length];

            int readCount = fileHandle.Read(swImage, 0, swImage.Length);

            fileHandle.Close();
            sd_card.Unmount();

            Bitmap bm = new Bitmap(swImage, Bitmap.BitmapImageType.Bmp);

            bm.DrawImage(0,0, bm, 0,0,100,100);
            bm.Flush();
           
            Thread.Sleep(Timeout.Infinite);
        }

Exception thrown at Bitmap bm = new Bitmap(swImage, Bitmap.BitmapImageType.Bmp);

The thread '<No Name>' (0x2) has exited with code 0 (0x0).
    #### Exception System.NotSupportedException - CLR_E_NOT_SUPPORTED (1) ####
    #### Message: 
    #### Microsoft.SPOT.Bitmap::.ctor [IP: 0000] ####
    #### TestImageRotation.Program::Main [IP: 0078] ####
A first chance exception of type 'System.NotSupportedException' occurred in Microsoft.SPOT.Graphics.dll
An unhandled exception of type 'System.NotSupportedException' occurred in Microsoft.SPOT.Graphics.dll

Fez Cobra II (G120)
Latest 4.3 built from GHI

Thoughts? Its an actual bmp object

Rename the file extensions with bin and put as a resource then extract it and create a bitmap.

Does it work?

Also check the encoding. Last time I checked not all bitmap encoding types were supported.

I loaded the bmp as a resource and renamed to bin as suggested. And then used the following code

 image = Resources.GetBytes(Resources.BinaryResources.sw2);

            Bitmap bitMap = new Bitmap(image, Bitmap.BitmapImageType.Bmp);

            bitMap.DrawImage(0,0, bitMap, 0,0, 100,100);
            bitMap.Flush();

I have also tried 16bit R5 G6 B5 and 32bit A8 R8 G8 B8 encoding. I’m still getting the same exception when I instantiate “bitMap”.

The thread '<No Name>' (0x2) has exited with code 0 (0x0).
    #### Exception System.NotSupportedException - CLR_E_NOT_SUPPORTED (1) ####
    #### Message: 
    #### Microsoft.SPOT.Bitmap::.ctor [IP: 0000] ####
    #### TestImageRotation.Program::Main [IP: 003c] ####
A first chance exception of type 'System.NotSupportedException' occurred in Microsoft.SPOT.Graphics.dll
An unhandled exception of type 'System.NotSupportedException' occurred in Microsoft.SPOT.Graphics.dll

Should I encode as a JPG or PNG? Any other thoughts?

The files can be found here: Dropbox - File Deleted

@ zeroaviation

From the documentation:

The .NET Micro Framework currently provides support for the following bitmap types.
1bpp Indexed
24bpp RGB
32bpp RGB
48bpp RGB
16bpp RGB 555 (five bits for each color, one bit unused)
16bpp RGB 556 (five bits each for red and blue, six bits for green)