How to resize a JPG image file

C

Chris Berg

I need to re-size a .jpg image. This is what I do:

(tDim is the required new Dimension)
Image newImg =
javax.imageio.ImageIO.read(myFile).getScaledInstance(tDim.width,
tDim.height,Image.SCALE_SMOOTH);
java.awt.image.BufferedImage bim =
new java.awt.image.BufferedImage(tDim.width,
tDim.height, java.awt.image.BufferedImage.TYPE_INT_RGB);
bim.createGraphics().drawImage(newImg, 0, 0, null);
FileOutputStream fos = new FileOutputStream(ofName);
javax.imageio.ImageIO.write(bim, "jpg", fos);
fos.close();

Is this the smartest (fastest, least ressource-using) way to do it?
And is TYPE_INT_RGB the right choice?

Chris
 
K

Knute Johnson

Chris said:
I need to re-size a .jpg image. This is what I do:

(tDim is the required new Dimension)
Image newImg =
javax.imageio.ImageIO.read(myFile).getScaledInstance(tDim.width,
tDim.height,Image.SCALE_SMOOTH);
java.awt.image.BufferedImage bim =
new java.awt.image.BufferedImage(tDim.width,
tDim.height, java.awt.image.BufferedImage.TYPE_INT_RGB);
bim.createGraphics().drawImage(newImg, 0, 0, null);
FileOutputStream fos = new FileOutputStream(ofName);
javax.imageio.ImageIO.write(bim, "jpg", fos);
fos.close();

Is this the smartest (fastest, least ressource-using) way to do it?
And is TYPE_INT_RGB the right choice?

Chris

Chris:

Looks pretty good. I did a similar one that I use with my web cam to
scale the image.

import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;

public class ScaleImage2 {
public static void scale(String srcFile, int destWidth, int destHeight,
String destFile) throws IOException {
BufferedImage src = ImageIO.read(new File(srcFile));
BufferedImage dest = new BufferedImage(destWidth,destHeight,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = dest.createGraphics();
AffineTransform at = AffineTransform.getScaleInstance(
(double)destWidth/src.getWidth(),
(double)destHeight/src.getHeight());
g.drawRenderedImage(src,at);
ImageIO.write(dest,"JPG",new File(destFile));
}

public static void main(String[] args) {
if (args.length == 4) {
try {

scale(args[0],Integer.parseInt(args[1]),Integer.parseInt(args[2]),
args[3]);
} catch (Exception e) {
System.out.println(e);
}
} else
System.out.println("\nUsage: java -jar ScaleImage2.jar
srcfile " +
"width height destfile\n");
}
}
 
Joined
Jul 20, 2009
Messages
1
Reaction score
0
Good work

Chris, good work! This is really helpful, especially the library full path helps a lot. Thanks! Cheers.

Chris Berg said:
I need to re-size a .jpg image. This is what I do:

(tDim is the required new Dimension)
Image newImg =
javax.imageio.ImageIO.read(myFile).getScaledInstance(tDim.width,
tDim.height,Image.SCALE_SMOOTH);
java.awt.image.BufferedImage bim =
new java.awt.image.BufferedImage(tDim.width,
tDim.height, java.awt.image.BufferedImage.TYPE_INT_RGB);
bim.createGraphics().drawImage(newImg, 0, 0, null);
FileOutputStream fos = new FileOutputStream(ofName);
javax.imageio.ImageIO.write(bim, "jpg", fos);
fos.close();

Is this the smartest (fastest, least ressource-using) way to do it?
And is TYPE_INT_RGB the right choice?

Chris
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,076
Latest member
OrderKetoBeez

Latest Threads

Top