前不久五一到周庄游玩,照相机照的照片超大,每一个均超过3M,不能上传QQ空间,由于自己写一个简简单单的图片缩放的代码,通过java程序缩放使相册小于3M,然后上传到QQ空间。O(∩_∩)O哈哈~
package com.easyway.commons.ispace.dev.io; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * 图片缩放 * @author longgangbai * @date 2010-5-20 * @version 1.0 * @since JDK6.0 */ public class FileImageUtils { public static void reduceImg(File srcfile, String imgdist, int widthdist, int heightdist) { try { if (!srcfile.exists()) { return; } Image src = javax.imageio.ImageIO.read(srcfile); BufferedImage tag= new BufferedImage((int) widthdist, (int) heightdist, BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist, Image.SCALE_SMOOTH), 0, 0, null); ///tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist, Image.SCALE_AREA_AVERAGING), 0, 0, null); FileOutputStream out = new FileOutputStream(imgdist); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(tag); out.close(); } catch (IOException ex) { ex.printStackTrace(); } } public static void main(String[] args) { File file=new File("E:\\images\\101MSDCF\\"); File[] files=file.listFiles(); for (File file2 : files) { reduceImg(file2,file2.getParent()+"//_"+file2.getName(),800,600); } } }