Zooming using an own ImageProducer?

I’ve written a component which displays an image and a little subcompoonent which always displays a small overview of the currently shown image.

The user can zoom that image bigger and smaller. When the user zooms in or out, I create a new image and draw a scaled instance of the original one into it. That image will then be shown.

In Java 1.1 (still used by many, if not most browsers) creating and loading images takes much memory and time.
If the user zooms to different steps quickly and perhaps chooses to show a new image, while the old is still being calculated (scaled), my component is not snappy.

Is it possible to hold only one image in memory and just provide the scaled pixels (perhaps calculated just-in-time only for the visible pixels).
Writing an own ImageProducer? Or does this imply that we have to deliver to an image (which must have its buffers)? Implementing an “own” scaling routine?

Using the drawImage(…)-version with allows scaling is no option because it does fast scaling, not smooth scaling.

(My actual situation is even worse: I don’t have just ONE original image, but two - one small for a quick view, which is especially useful on slow internet connections and a big one with all the details, so I can show these two, or images with sizes inbetween their sizes and bigger and smaller images)

Look at the contests on http://www.cfxweb.net/ in the Java section… You can download the source code. In contest #1 there were lots of image zoomer type effects that you can learn from.