In general, when you start playing with huge bitmap in memory you always get this kind of issue. Best way to avoid this is to split your image in an array or something similar so you can create a grid.
From that point on, you only need/have to load on the screen what can be viewed which would save a lot of memory.
I had this happen to me when I decided to create a little games to kill some times.
I decided to create a Maze/Pipe game and the user could choose the number of columns and rows. I decided to limit the image to 10000px by 10000px.
My first try, I had exactly your issue. error after error after error, mostly memory issue.
I decided to do some research on how to do what I wanted and I found the solution.
What I did is I created a dynamic 2d array (I decided to limit it to a maximum of 1000 by 1000) and I just put in them small 10x10 pixel image or whatever the user decide.
When that was done, the issue with memory/loading speed/etc... was simply gone.
memory usage before my fix was easily over a gig, now memory usage of the apps is between 150 and 225 megs ram when you use the limit
if you want to try it, download this and go look in the menu(Maze) and play with the setting: my little games