We have a quite huge (~50MB) raster image in our map control.
The solution was to cut the main image into small pieces and load into a Image[,] array.
-------------------------------------
| pic00 | pic01 | | |
-------------------------------------
| pic10 | | | |
pic.png -> -------------------------------------
| | | | |
-------------------------------------
| | | | picnm |
-------------------------------------
You are able to draw this pieces with Graphics.DrawImage(..).
There is only big issue: if you need the whole picture on the screen, the drawing procedure can be slow. A good workaround to save a thumbnail and show that if needed.