用Image中的getScaledInstance方法得到一个按照指定宽度和高度缩放以后的Image实例,然后再用setImage方法设置ImageIcon所显示的图像。
static int SCALE_DEFAULT表示默认的图像缩放算法。
public Image getScaledInstance创建此图像的缩放版本。返回一个新的 Image 对象,默认情况下,该对象按指定的 width 和 height 呈现图像。即使已经完全加载了初始源图像,新的 Image 对象也可以被异步加载。
如果 width 或 height 为负数,则替换该值以维持初始图像尺寸的高宽比。如果 width 和 height 都为负,则使用初始图像尺寸。
BufferedImage image = javax.imageio.ImageIO.read(file)报错:java.lang.OutOfMemoryError: Java heap space
图片大小是3425px*4843px,我本机内存1g。
------解决方案--------------------------------------------------------
Xms Xmx 把jvm的heap 调大点 试试~~~
------解决方案--------------------------------------------------------
设置一下stack size的大小 java 后跟参数即可设置,具体参数如下:
-Xms size set initial Java heap size
-Xmx sizeset maximum Java heap size
-Xss size set java thread stack size
------解决方案--------------------------------------------------------
用java.exe -Xmx1024m -Xms256m .来运行的程序,你机器是1G但是又没分配给jvm
------解决方案--------------------------------------------------------
ImageIO.read(File file)使用来自boolean getUseCache() 和 File getCacheDirectory()的当前缓存设置控制所创建的 ImageInputStream 中的缓存。其中getUseCache()默认设定是true,getCacheDirectory()返回的是setCacheDirectory(File cacheDirectory)所设定的目标,如果用户没有明显设定,那么getCacheDirectory()返回的将是null。