--- old/src/java.desktop/share/classes/sun/awt/image/SunVolatileImage.java 2015-10-22 07:46:32.468171300 -0700 +++ new/src/java.desktop/share/classes/sun/awt/image/SunVolatileImage.java 2015-10-22 07:46:32.108767100 -0700 @@ -233,8 +233,17 @@ * or a backup surface. */ public BufferedImage getBackupImage() { - return graphicsConfig.createCompatibleImage(getWidth(), getHeight(), - getTransparency()); + return getBackupImage(1, 1); + } + + /** + * This method creates a BufferedImage intended for use as a "snapshot" + * or a backup surface with the given horizontal and vertical scale factors. + */ + public BufferedImage getBackupImage(double scaleX, double scaleY) { + int w = (int) Math.ceil(getWidth() * scaleX); + int h = (int) Math.ceil(getHeight() * scaleY); + return graphicsConfig.createCompatibleImage(w, h, getTransparency()); } public BufferedImage getSnapshot() {