告诉我具体用到哪些类中的哪些方法也行。

解决方案 »

  1.   

    try {
                
                // 压缩前的JPEG文件
                File srcFile = new File("c:\\src.jpg");
                // 压缩前后的JPEG文件
                File dstFile = new File("c:\\dst.jpg");
                // 压缩百分比
                float quality = 0.75f;
                
                BufferedImage srcImage = ImageIO.read(srcFile);
                
                Iterator it = ImageIO.getImageWritersBySuffix("jpg");
                if (it.hasNext()) {
                    FileImageOutputStream fileImageOutputStream = new FileImageOutputStream(dstFile);
                    ImageWriter iw = (ImageWriter) it.next();
                    ImageWriteParam iwp = iw.getDefaultWriteParam();
                    iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
                    iwp.setCompressionQuality(quality);
                    iw.setOutput(fileImageOutputStream);
                    iw.write(null, new IIOImage(srcImage, null, null), iwp);
                    iw.dispose();
                    fileImageOutputStream.flush();
                    fileImageOutputStream.close();
                }
            } catch (FileNotFoundException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
      

  2.   

    jpeg已经是压缩过的图片了,基本上不能再压缩太多了