In this article, I will show you how to resize images in Java.
ImageIO allows the reading and writing of images in Java and processing the image. I will also cover image resizing using our JDeli image library.
How to resize an image in ImageIO
- Create a File handle, InputStream, or URL pointing to the raw image.
- ImageIO will now be able to read a BMP file into a BufferedImage. This syntax is like so:
BufferedImage image = ImageIO.read(bmpFileOrInputStreamOrURL)
- Create a second BufferedImage at the new size
final int w = image.getWidth(); final int h = image.getHeight(); BufferedImage scaledImage = new BufferedImage((w * 2),(h * 2), BufferedImage.TYPE_INT_ARGB);
- Create a transformation
final AffineTransform at = AffineTransform.getScaleInstance(2.0, 2.0); final AffineTransformOp ato = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC);
- Apply the transformation
scaledImage = ato.filter(image, scaledImage);
How to resize an image in JDeli
- Add JDeli to your class or module path. (download the trial jar).
- Create a File, InputStream pointing to the raw image. You can also use a byte[] containing the image data.
- Read the image into a BufferedImage
BufferedImage image = JDeli.read(bmpFile);
- Create a transformation
ImageProcessingOperations operations = new ImageProcessingOperations(); operations.scale(scalingFactor);
- Apply the transform
image = JDeli.process(ImageProcessingOperations operations, BufferedImage image);
Why do developers choose JDeli over free alternatives?
- Works with newer image formats such as AVIF, HEIC, JPEG XL, WEBP (AVIF next release) that are not supported in Java.
- Better support than alternatives for JPEG, PNG, TIFF.
- Process images up to 3x faster than ImageIO and other Java image libraries.
- Prevent JVM crashes caused by native code in other image libraries such as ImageIO.
- Image security as JDeli processes images on your servers with no calls to any external system or third party library.
Are you a Java Developer working with Image files?
// Read an image
BufferedImage bufferedImage = JDeli.read(dicomImageFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(heicImageFile);
// Write an image
JDeli.write(bufferedImage, "heic", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpegImageFile);
// Write an image
JDeli.write(bufferedImage, "jpeg", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpeg2000ImageFile);
// Write an image
JDeli.write(bufferedImage, "jpx", outputStreamOrFile);
// Write an image
JDeli.write(bufferedImage, "pdf", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(pngImageFile);
// Write an image
JDeli.write(bufferedImage, "png", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(tiffImageFile);
// Write an image
JDeli.write(bufferedImage, "tiff", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(webpImageFile);
// Write an image
JDeli.write(bufferedImage, "webp", outputStreamOrFile);