Quantcast
Channel: Reza's Weblog
Viewing all articles
Browse latest Browse all 50

Resize and compress an image in Java

$
0
0

Using this simple code you can reduce the quality of an image and change its size as well:

BufferedImage originalImage = ImageIO.read(new File("in.jpg"));

double scale = 0.5;  // 50 %

int newW = (int)(originalImage.getWidth() scale);

int newH = (int)(originalImage.getHeight() scale);

BufferedImage resizedImage = new BufferedImage(newW, newH, originalImage.getType());

Graphics2D g = resizedImage.createGraphics();

g.drawImage(originalImage, 0, 0, newW, newH, null);

g.dispose();

ImageWriter writer = (ImageWriter) ImageIO.getImageWritersBySuffix("jpeg").next();

File file = new File("out.jpeg");

writer.setOutput(ImageIO.createImageOutputStream(file));

ImageWriteParam param = writer.getDefaultWriteParam();

param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);

param.setCompressionQuality(0.5f); //half

writer.write(null, new IIOImage(resizedImage, null, null),param);


Viewing all articles
Browse latest Browse all 50

Trending Articles