![]() |
|
|
|||||||
![]() |
Java - How to resize a JPG image file |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
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).getScaledInstan ce(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 Berg |
|
|
|
|
#2 |
|
Posts: n/a
|
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).getScaledInstan ce(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/ |
|