@Override
	public void paint( GGlassPane glassPane, Graphics g ) {
        if ( image == null || targetBounds == null ) {
            return;
        }

        // the width is based upon the magnify factor and the 
        // zoom (set by the animator's progress)
        int imageWidth = image.getWidth( null );
        int width = imageWidth + (int) (imageWidth * magnifyFactor * getZoom());

        // the height is also based upon the magnify factor and the 
        // zoom (set by the animator's progress)
        int imageHeight = image.getHeight( null );
        int height = imageHeight + (int) (imageHeight * magnifyFactor * getZoom());

        // calculate the coordinates, centering the image drawing over the container's bounds
        int middleBoundsX = targetBounds.width >> 1;
        int middleBoundsY = targetBounds.height >> 1;
        int middleWidthX = width >> 1;
        int middleHeightY = height >> 1;
        int x = middleBoundsX - middleWidthX + targetBounds.x;
        int y = middleBoundsY - middleHeightY + targetBounds.y;

        Graphics2D g2 = (Graphics2D) g.create();
        g2.setRenderingHint( RenderingHints.KEY_INTERPOLATION,
            RenderingHints.VALUE_INTERPOLATION_BILINEAR );

        float alpha = 1.0f - zoom;

//      This lets the image stay until clear() is called                
//      alpha = Math.max( 0.1f, alpha );
        g2.setComposite( AlphaComposite.getInstance( AlphaComposite.SrcOver.getRule(), alpha ) );

        g2.drawImage( image, x, y, width, height, null );
    }
A class that paints a given image with varying zoom levels.  The zoom is set by clients 
according to changes made by an {@link org.jdesktop.animation.timing.Animator}.  In essence, 
this class paints the given image centered over the given target bounds at some 
level of zoom.  If the zoom or bounds of the parent container are never changed, 
then the image painted by this class will not change.
<p>
NOTE: This class and it's getters/setters need to be public for reflective callbacks
Ghidra/Framework/Project/src/main/java/ghidra/framework/main/ZoomedImagePainter.java