解决java压缩图片内存溢出问题
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
public class TestCompressImg
{
public static void main(String[] args) throws IOException
{
ImageInputStream iis = ImageIO.createImageInputStream(new File("d:/11.jpg"));
Iterator iter = ImageIO.getImageReaders(iis);
long s1 = System.currentTimeMillis();
ImageReader reader = (ImageReader)iter.next();
ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(2, 2, 0, 0);
reader.setInput(iis);
BufferedImage bi = reader.read(0, param);
File file = new File("d:/1.jpg");
FileOutputStream out = new FileOutputStream(file);
ImageIO.write(bi, "jpg", out);
long s2 = System.currentTimeMillis();
System.out.println(s2-s1);
}
}