Это потому, что вы записываете tempImage, которое по-прежнему является исходным изображением.
graphics2D.drawImage(image, 0, 0, imageWidth, imageHeight, null);
измените его на:
graphics2D.drawImage(tempImage, 0, 0, imageWidth, imageHeight, null);
или измените другой код для записи изображения вместоtempImage
- Правка -
OK Попытка 2. Возможно, что источник и пункт назначения одинаковы, это глупость.
BufferedImage bsrc = ImageIO.read(new File(src));
BufferedImage bdest =
new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bdest.createGraphics();
AffineTransform at =
AffineTransform.getScaleInstance((double)width/bsrc.getWidth(),
(double)height/bsrc.getHeight());
g.drawRenderedImage(bsrc,at);
Попробуйте это:)