image.ImageCompression.java
package image; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.*; public class ImageCompression { public static void compressImage(File originalImage,int width,int height,File destFile)throws Exception{ // 压缩图片 BufferedImage originalBufferedImage = ImageIO.read(originalImage); // int originalWidth = originalBufferedImage.getWidth(); // 原始宽度 // int originalHeight = originalBufferedImage.getHeight();// 原始高度 // int resizeWidth = originalWidth/4; // 压缩后 宽度 // int resizeHeight = originalHeight/4; // 压缩后 高度 BufferedImage resizedBufferedImage = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); resizedBufferedImage.getGraphics().drawImage(originalBufferedImage,0,0,width,height,null); FileOutputStream fos = new FileOutputStream(destFile); // 输出到文件流 // 可以正常实现bmp、png、gif转jpg JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos); encoder.encode(resizedBufferedImage); // JPEG编码 fos.close(); } public static void main(String[] args) throws Exception{ compressImage(new File("dest.jpg"),200,200,new File("resized_dest.jpg")); } }
原文:http://antlove.blog.51cto.com/10057557/1727591