Considering this is a scanned image, i assume its a document of some sort most likely containing text. I believe IE uses a bilinear sampling algorithm by default for scaling images which may produce better results for these kinds of images. In any case you will need to modify your scaling algorithm when you render the image to ensure proper quality.
here's a simple example that shows setting the scaling algorithm to be Bilinear, this may or may not give you the correct results, i would keep trying with different algorithms until you get the correct results. (see RenderingHints and look for settings starting with `VALUE_INTERPOLATION_...")
private float xScaleFactor, yScaleFactor = ...;
private BufferedImage originalImage = ...;
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
int newW = (int)(originalImage.getWidth() * xScaleFactor);
int newH = (int)(originalImage.getHeight() * yScaleFactor);
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(originalImage, 0, 0, newW, newH, null);
}
Also check out this article for some insight into various performance concerns and use to make sure everything is working well.