java 处理图片文件

mahonggang1982 2010-02-22 01:41:56
/** *//**
* 缩放图像
* @param srcImageFile 源图像文件地址
* @param result 缩放后的图像地址
* @param width 缩放后图像宽度
* @param height 缩放后图像高度
*/
public static void scale(String srcImageFile,String result,int width,int height){
try{
//读入文件
BufferedImage src = ImageIO.read(new File(srcImageFile));

Image image = src.getScaledInstance(width, height,Image.SCALE_DEFAULT);
BufferedImage tag = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
//绘制缩放后的图像
g.drawImage(image,0,0,null);
g.dispose();
//输出到文件流
ImageIO.write(tag,"jpg",new File(result));
}catch(Exception e){
e.printStackTrace();
}
}

这段代码是对图片文件进行缩放处理,可是当图片超过10M大小时,就会报内存溢出这个错误。请问各位高手有什么好的解决办法吗? 请多多指点!急~~~
...全文
81 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bmwdoc 2010-02-27
  • 打赏
  • 举报
回复
新人接分,回复里容太短了!!
铁匠梁 2010-02-24
  • 打赏
  • 举报
回复
鼎2楼的童靴,收下了,以后就有经验了
icy_csdn 2010-02-24
  • 打赏
  • 举报
回复
处理图片时需要把整个图片都要加载到内存,把JVM的内存调大一些吧。

如果实在有问题,可以用安装imagemagic, 用convert命令,可以处理GB甚至更大的图片。

梦_枫 2010-02-24
  • 打赏
  • 举报
回复
10M的图片,什么地方要用到这么大的图片啊,,
图片在java中占内存的空间= 长*宽*像素值

你可以减小长和宽的值。。。
发帖
Java

4.9w+

社区成员

Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2010-02-22 01:41
社区公告
暂无公告