Thanks for your reply Ritchie
How large are your images?
Images aren't so big, about 0.5MP to 1MP but there are many. Now with -xmx 1GB I can handle around 25 MP.
How are you handling the shapes? Do you have objects to represent the different shapes ?
Shapes and images are specialized objects (tile, ellipse, square, line ...) stored in lists (layers) and painted in JPanel at each time repaint() is called. All paint is done with the standard Graphics2D API.
What are you using for zooming?
Graphics2D API. I use g2d.scale(sx, sy)
Shapes aren't the problem I think. They use few memory, the problem is with images. BufferedImage take lot of memory.
Maybe I can try to design a system with the whole image on disk (shapes and images assembled) and a special panel who read and paint only an interresting area.
But before try to do this I am looking for something easier, or at least documentation on this kind of system.
Do you know what is the most popular way to achieve this ?