迷彩风情
2016-08-31 12:14:28
等
为什么java BufferedImage类处理大图直接抛出内存溢出的异常?
public static void mergeImage(int rows,int cols,File[] imgFiles,int classroomId) throws IOException { HttpServletRequest request = ServletActionContext.getRequest(); int chunks = rows * cols; int chunkWidth, chunkHeight; int type; //读入小图 /*File[] imgFiles = new File[chunks]; for (int i = 0; i < chunks; i++) { imgFiles[i] = new File("D:/QRCode/" + i + ".png"); } */ //创建BufferedImage BufferedImage[] buffImages = new BufferedImage[chunks]; for (int i = 0; i < chunks; i++) { buffImages[i] = ImageIO.read(imgFiles[i]); } type = buffImages[0].getType(); chunkWidth = buffImages[0].getWidth(); chunkHeight = buffImages[0].getHeight(); //设置拼接后图的大小和类型 BufferedImage finalImg = new BufferedImage(chunkWidth * cols, chunkHeight * rows, type); //写入图像内容 int num = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { finalImg.createGraphics().drawImage(buffImages[num], chunkWidth * j, chunkHeight * i, null); num++; } } String separator = File.separator; String path = request.getSession().getServletContext().getRealPath("/QrCode"); path += separator+classroomId+".png"; //输出拼接后的图像 ImageIO.write(finalImg, "png", new File(path)); }
评论
所有回答列表(2)
yjx4510013 LV9
2016年8月31日
显示一张大图片,和,显示多张图片的时候,BufferedImage 必然有内存溢出的风险。
因为,你所有压缩格式的图片,都被转换成像素点阵,存放到内存当中,这个是非常消耗资源的。
而且,BufferedImage 设计这个类的目的,主要是为了,显示小图标,一般都是64X64像素的图片,
要是操作大的图片,要么,每次处理一张(不要过大),
jdk7中,关于imageIO在线程池中并发使用时,会出现一些问题。
- 等 最代码怎么获取牛币啊?
- 完 谁来告诉我最代码上线的时间,答对者给5牛币,先来先得
- 等 牛友们,大家好,你们做程序员多久了?现在还好吗?
- 完 在微信打开的页面里进行app下载
- 等 最代码2014年欢乐聚声会
- 完 mysql如何查询表数据并且对3个字段降序的SQL?
- 完 最代码牛币机制改革
- 完 成功的在bae上使用了自定义运行环境 jetty+nginx的组合,大家对jetty+nginx优化有哪些心得?
- 完 进来分享一下各位牛牛是如何加入最代码大家庭的?
- 等 为什么java BufferedImage类处理大图直接抛出内存溢出的异常?
- 等 最代码是否开发手机app客户端?
- 完 java程序员学习哪些java的技术?java有哪些框架?都能做哪方面的开发?
- 等 php格式网页文件怎么运行?
- 等 Java volatile值获取的问题
- 等 前端vue,拦截了登录后台后,返回的token,requests拦截token,但是发送请求的时候,就出现跨越异常
- 等 大专本科计算机科班怎么找到Java工作?
- 等 eclipse怎么把三个java swing游戏项目合成一个项目?
- 完 伙伴们,大家都有什么好的解压方式么,分享一下~
- 完 三四线城市,6、7k,运维工作,索然无味,想去辞职上培训,各位牛牛有什么建议嘛
- 等 jsp页面输入中文变成问号
- 等 JPA在线上运行一段时间后报错Caused by: java.lang.IncompatibleClassChangeError: null
- 等 PHP 这个规则用preg_match_all怎么写
- 等 大佬们,有没有知道Alfresco如何配置LDAP登录呢?
- 等 php的install目录是框架带的吗?
相关问答
最近浏览
不想取名字知道吗
2022年6月28日
暂无贡献等级
月之氏族 LV23
2021年6月27日
921986943
2021年5月31日
暂无贡献等级
springggg LV1
2021年4月9日
1143011510 LV15
2021年1月26日
a236741566
2020年9月21日
暂无贡献等级
你的阿飞
2020年7月30日
暂无贡献等级
测试cesces
2019年12月27日
暂无贡献等级
是非黑白 LV8
2019年12月25日
jong001
2019年12月18日
暂无贡献等级