protected BufferedImage scaleImageToWidth(BufferedImage image, int width) { BufferedImage scaledImage; AffineTransformOp scaleOp; double sf; sf = (double) width / (double) image.getWidth(); scaledImage = new BufferedImage(width, (int) (image.getHeight() * sf), image.getType()); scaleOp = new AffineTransformOp(AffineTransform.getScaleInstance(sf, sf), AffineTransformOp.TYPE_BILINEAR); scaleOp.filter(image, scaledImage); return scaledImage; }