final double scale = 0.2;
final double width = 300;
final double height = 400;
final WaitingImageObserver obs = new WaitingImageObserver(source);
obs.waitImageLoaded();
final BufferedImage bImage = new BufferedImage((int) (width * scale), (int) (height * scale), BufferedImage.TYPE_INT_ARGB);
final Graphics2D graph = bImage.createGraphics();
graph.setTransform(AffineTransform.getScaleInstance(scale, scale));