96编辑器旗下产品
找图
终身
ID:0
到期时间:永久
退出登录
您的位置:首页 > 百科管理 > 详情

大图片压缩导致内存溢出-java thumbnails压缩图片占用内存过大

原创:找图网 2023-05-03 22:02:18
  • 使用Matrix对图片进行缩放后的内存溢出问题???

  • 1、使用Matrix对图片进行缩放都是在内存中进行的,也就是说你加载进去一张很大的原图,然后使用这个方法进行压缩,其实原图占用的内存没有任何改变,但是做完处理之后原图的内存是可以释放的。2、图库的代码没有分析过,但是我个人想法,如果一张图非常大,大到不做任何处理只要载入都会内存溢出的地步应该图库还是会在读取原图采样的时候进行处理的。

  • 读取大图片总是报内存溢出~有哪位高手知道?BufferedImage image = (file)

  • File file = new File(imgPath); //imgPath是图片的存放路径

    BufferedImage image = (file);报错:

    : Java heap space

    图片大小是3425px*4843px,我本机内存1g。

    ------解决方案--------------------------------------------------------

    Xms Xmx 把jvm的heap 调大点 试试~~~

    ------解决方案--------------------------------------------------------

    设置一下stack size的大小 java 后跟参数即可设置,具体参数如下:

    -Xms size set initial Java heap size

    -Xmx size set maximum Java heap size

    -Xss size set java thread stack size

    ------解决方案--------------------------------------------------------

    用 -Xmx1024m -Xms256m ....来运行的程序,你机器是1G但是又没分配给jvm

    ------解决方案--------------------------------------------------------

    (File file)使用来自boolean getUseCache() 和 File getCacheDirectory()的当前缓存设置控制所创建的 ImageInputStream 中的缓存。其中getUseCache()默认设定是true,getCacheDirectory()返回的是setCacheDirectory(File cacheDirectory)所设定的目标,如果用户没有明显设定,那么getCacheDirectory()返回的将是null。

    所以,你出现问题的原因可能是没有设定getUseCache(),那么取true;没有设定setCacheDirectory()那么返回null,,也就是你要图片存在用户缓存区但没给它设定,所以出现了内存不足的情况~~你不妨(File cacheDirectory)给它设定一个缓存路径试一试~~~

    或者(false)用系统缓存~~~~

  • java thumbnails压缩图片占用内存过大

  • 缩小即可。javathumbnails压缩图片占用内存过大的解决办法:

    1、打开压缩图网站,点击选择图片压缩按钮。

    2、图片上传前网站默认的压缩等级是70,图片上传后会自动按照当前设置的压缩等级进行压缩,如果压缩后的大小不合要求,可再次设置图片的宽高尺寸、压缩等级等参数,宽高留空时默认按照原图尺寸进行压缩,压缩等级越小则压缩后的图片体积越小,最后点击开始压缩按钮重新压缩。

    3、图片压缩后,我们就能明显的看到图片压缩后的体积缩小了很多,点击“保存图片”即可。

    最新文章 更多
    最新素材 更多
    公司介绍 网站地图 图片资讯
    Copyright © 2010-2022 山东找图网络科技有限公司  鲁ICP备18007836号-3  邮箱:15653358549@163.com