图片压缩代码

public class ImageZipUtil {

  /** 
     * 压缩图片文件<br> 
     * 先保存原文件,再压缩、上传 
     *  
     * @param oldFile 
     *            要进行压缩的文件全路径 
     * @param width 
     *            宽度 
     * @param height 
     *            高度 
     * @param quality 
     *            质量 
     * @param smallIcon 
     *            小图片的后缀 
     * @return 返回压缩后的文件的全路径 
     */ 
    public static String zipImageFile(String oldFile, int width, int height,   float quality, String smallIcon) {  
        if (oldFile == null) {  
            return null;  
        }  
        String newImage = null;  
        try {  
            /** 对服务器上的临时文件进行处理 */ 
            Image srcFile = ImageIO.read(new File(oldFile));
           
           
            int w = srcFile.getWidth(null);  int h = srcFile.getHeight(null);
            System.out.println(w);  //获取得到原来图像的高度
            System.out.println(h);  //获取得到原来图像的宽度         
           
            /** 宽,高设定 */ 
            BufferedImage tag = new BufferedImage(width, height,  BufferedImage.TYPE_INT_RGB);  
            tag.getGraphics().drawImage(srcFile, 0, 0, width, height, null);  
           
            String filePrex = oldFile.substring(0, oldFile.indexOf('.'));   //取得到存放路径   
            System.out.println("--- "+filePrex);   /** 压缩后的文件名 */          
            newImage = filePrex + smallIcon + oldFile.substring(filePrex.length());     //得到路径以及文件名
 
            /** 压缩之后临时存放位置 */ 
            FileOutputStream out = new FileOutputStream(newImage);   //新建一个文件
 
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
            JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);  
            /** 压缩质量 */ 
            jep.setQuality(quality, true);  
            encoder.encode(tag, jep);  
            out.close();  
 
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        return newImage;  
    }  
 
 
    public static void main(String args[]){  
        ImageZipUtil.zipImageFile("E:/009.jpg", 128, 128, 1f, "x2");  
          
    }  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值