2兆的图片还好,10几兆的图片就报内存溢出了,这个有什么好的解决方式吗 ?用的jdk1.7

/**

* 给图片添加水印、可设置水印图片旋转角度

*

* @param iconPath

* 水印图片路径

* @param srcImgPath

* 源图片路径

* @param targerPath

* 目标图片路径

* @param degree

* 水印图片旋转角度

*/

public static void markImageByIcon(String iconPath, String srcImgPath, String targerPath, Integer degree) {

OutputStream os = null;

try {

Image srcImg = ImageIO.read(new File(srcImgPath));

BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null),

BufferedImage.TYPE_INT_RGB);

// 得到画笔对象

// Graphics g= buffImg.getGraphics();

Graphics2D g = buffImg.createGraphics();

// 设置对线段的锯齿状边缘处理

g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), Image.SCALE_SMOOTH), 0,

0, null);

if (null != degree) {

// 设置水印旋转

g.rotate(Math.toRadians(degree), (double) buffImg.getWidth() / 2, (double) buffImg.getHeight() / 2);

}

// 水印图象的路径 水印一般为gif或者png的,这样可设置透明度

ImageIcon imgIcon = new ImageIcon(iconPath);

// 得到Image对象。

Image img = imgIcon.getImage();

float alpha = 0.5f; // 透明度

g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));

// 表示水印图片的位置

g.drawImage(img, 150, 300, null);

g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));

g.dispose();

os = new FileOutputStream(targerPath);

// 生成图片

ImageIO.write(buffImg, "JPG", os);

System.out.println("图片完成添加Icon印章。。。。。。");

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (null != os)

os.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

java bufferedimage 内存溢出_大图片内存溢出问题!!!相关推荐

  1. 内存虚拟化、内存复用、大页内存作用及详解

    内存虚拟化.内存复用.大页内存作用及详解 1. 内存虚拟化 2. 内存复用 2.1. 内存共享 2.2. 内存置换 2.3. 内存气泡 3. 大页内存 3.1. 大页内存原理 3.2. 大页内存配置 ...

  2. Android手机内存图片读取,有效解决Android加载大图片内存溢出的问题

    今天在交流群里,有人问我他经常遇到加载图片时内存溢出的问题,遇到的情况还是在自己的测试机或者手机里没有问题,做好了, 到了客户手机里就内存溢出了.其实有时候不同的手机和不同的系统对内存的要求不一样,尤 ...

  3. spark如何防止内存溢出_什么叫内存溢出?内存泄漏的定义又是什么?使用中如何避免?...

    一.基本概念 内存溢出:简单地说内存溢出就是指程序运行过程中申请的内存大于系统能够提供的内存,导致无法申请到足够的内存,于是就发生了内存溢出. 内存泄漏:内存泄漏指程序运行过程中分配内存给临时变量,用 ...

  4. Spark 内存管理堆内和堆外内存规划_大数据培训

    堆内和堆外内存规划 作为一个 JVM 进程,Executor 的内存管理建立在 JVM 的内存管理之上,Spark 对 JVM 的堆内(On-heap)空间进行了更为详细的分配,以充分利用内存.同时, ...

  5. Spark 内存管理内存空间分配_大数据培训

    静态内存管理 在 Spark 最初采用的静态内存管理机制下,存储内存.执行内存和其他内存的大小在 Spark 应用程序运行期间均为固定的,但用户可以应用程序启动前进行配置,堆内内存的分配如图6-2所示 ...

  6. 调大图片内存大小和降低图片内存大小快过来

    1.调大. 使用电脑自带的画图软件,直接修改图片的分辨率便可以调大图片大小,最好长宽按比例放大. 2.缩小,使用python代码进行缩小即可,代码引用 Python调整图片的文件大小_XerCis的博 ...

  7. 【Android 内存优化】Bitmap 内存占用计算 ( Bitmap 图片内存占用分析 | Bitmap 内存占用计算 | Bitmap 不同像素密度间的转换 )

    文章目录 一.Bitmap 内存占用 二.Bitmap 内存占用计算示例 三.Bitmap 内存占用与像素密度 四.Bitmap 内存占用与像素密度示例 一.Bitmap 内存占用 在 Android ...

  8. linux 内存占用_分享Linux内存占用几个案例

    案例一 问题 最近一台 CentOS 服务器,发现内存无端损失了许多,free 和 ps 统计的结果相差十几个G,非常奇怪,后来Google了许久才搞明白. 分析 1.linux系统内存消耗主要有三个 ...

  9. jvm内存结构_聊聊JVM内存结构

    起因 我们经常会在面试的时候被问到JVM的内存结构,很多人会觉得这东西真的有用吗?也就是面试造火箭,入职拧螺丝.问这个就是纯粹来刁难人的吧. 但实际上,我们细想一下. •假设你不知道局部变量实际上属于 ...

最新文章

  1. MacBook Pro休眠掉电、耗电量大问题解决方案
  2. Oracle服务扫描工具Oscanner
  3. 【AJAX】DWR使用总结
  4. Groovy与Java集成常见的坑
  5. addroid 自定义布局
  6. 为什么剩余数不能相加_行测备考:如何快解数量关系中的剩余定理
  7. 为何setRequestMethod(GET)不生效
  8. Joomla!程序中加载JS和CSS的方法
  9. 计算机知识wendang,计算机基础知识Microsoft Word 文档
  10. UnityShader例子:边缘检测
  11. C++调用mask rcnn进行实时检测--opencv4.0
  12. linux 挂载raid_linux下做raid
  13. 软件工程导论 四则运算
  14. JSON cannot be resolved 解决方法
  15. 什么是云迁移?云迁移的四种模式分别是?
  16. vue项目中使用echarts 地图 自定义图标
  17. 学习笔记(01):【吴刚】PS软件基础实用技巧标准视频教程-04-文件的打开及注意事项...
  18. strtol,strtoul,strtod
  19. 基于SSM中小型企业手机配件销售管理系统
  20. SAP MIGO批次特性增强

热门文章

  1. psm倾向得分匹配法举例_一文读懂倾向得分匹配法(PSM)举例及stata实现(一)
  2. transform:translate
  3. ROS2 基础概念 话题
  4. html中scr作用,车用尿素在SCR系统中的作用讲解?
  5. 伟景行citymaker-----01.javascript打开本地模型CEP,加载目录树,加载要素类
  6. 清晰理解红黑树的演变---红黑的含义
  7. Navicat for MySQL 12破解
  8. 鸿蒙之主的武器,别具心意 全门派T8武器赏析
  9. 一张新型肺炎地区分布地图是怎么制作的?
  10. 少儿编程培训发展的重要趋势