Hmmm. 15 * 9 is only about 135 -- I wonder what's filling up the other half of the heap.
What are you doing with all these large images? Since you can't simultaniously view them all at full resolution, it might be possible to discard some of them from memory and re-read from the filesystem as necessary (if you want thumbnail-ish views, creating small copies and discarding the originals might help). Filesystem access tends to be slow, though, and would probably cause a noticable delay to the user.
I don't know if this will make any difference, but calling flush() when you're done displaying an image might help.
Another idea: Those are some pretty heavy images. Would it be acceptable to show versions with decreased resolution?
Based on a quick web search, it seems that other people have run in to problems with very large files. Here's just
one example.