Resizing image in Java

If you have an java.awt.Image, resizing it doesn’t require any additional libraries. Just do:

Image newImage = yourImage.getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT);

Obviously, replace newWidth and newHeight with the dimensions of the specified image.
Notice the last parameter: it tells the runtime the algorithm you want to use for resizing.

There are algorithms that produce a very precise result, however these take a large time to complete.
You can use any of the following algorithms:

  • Image.SCALE_DEFAULT: Use the default image-scaling algorithm.
  • Image.SCALE_FAST: Choose an image-scaling algorithm that gives higher priority to scaling speed than smoothness of the scaled image.
  • Image.SCALE_SMOOTH: Choose an image-scaling algorithm that gives higher priority to image smoothness than scaling speed.
  • Image.SCALE_AREA_AVERAGING: Use the Area Averaging image scaling algorithm.
  • Image.SCALE_REPLICATE: Use the image scaling algorithm embodied in the ReplicateScaleFilter class.

See the Javadoc for more info.

Leave a Comment