作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想为一组图像创建缩略图。为此,我使用以下代码。
public void run() {
try{
BufferedImage originalImage = ImageIO.read(new File(url));
int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
IMG_HEIGHT = (originalImage.getHeight()*600)/originalImage.getWidth();
BufferedImage resizeImageJpg = resizeImage(originalImage, type);
ImageIO.write(resizeImageJpg, "jpg", new File(thumb));
originalImage.flush();
resizeImageJpg.flush();
System.gc();
}catch(IOException e){
System.out.println(e.getMessage());
System.out.println("Not Created:"+url);
}
}
private static BufferedImage resizeImage(BufferedImage originalImage, int type){
BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
g.dispose();
System.gc();
return resizedImage;
}
此代码工作正常并创建缩略图。但问题是,如果有大量图像,我会收到“java heap space error”。这是这段代码的问题吗?我该如何解决这个问题。提前致谢。如果您有任何其他调整大小的代码,请给我。
最佳答案
试试这个图像缩放库,它对我来说效果很好。
http://www.thebuzzmedia.com/software/imgscalr-java-image-scaling-library/
关于java - 在 Java 中创建缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5455477/
我是一名优秀的程序员,十分优秀!