Re: How to resize a JPG image file
- From: Knute Johnson <nospam@xxxxxxxxxxxxxxxxx>
- Date: Fri, 30 Dec 2005 23:11:31 -0800
Chris Berg wrote:
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");
}
}
--
Knute Johnson email s/nospam/knute/ .
- References:
- How to resize a JPG image file
- From: Chris Berg
- How to resize a JPG image file
- Prev by Date: Re: compare xml dom documents
- Next by Date: why java does not support pointers
- Previous by thread: How to resize a JPG image file
- Next by thread: why java does not support pointers
- Index(es):