关于 java 2D 占用内存的问题刚刚开始接触 Java 2D, 要处理比较大的图片(4000×4000 的gif)。 发现用window 自带的看图工具打开只需要 大概6,7M的内存, 可是用java 2D的drawImage画出来 居然用了60M。。
怎样可以减少内存占用啊? 因为我后面还有10000×10000的图要画呢。。这样电脑不是要暴拉
试试看,我不是专家
我想,java可能把gif转换成了位图,所以才会那么大。4000 X 4000 差不多是32M,如果每个象素用1个字节(gif应该够了吧),那么占用内存就是32M了。java要追求跨平台,大概位图就是跨平台的首选了。
windows可能作了优化了,呵呵,废话。那么,有什么办法呢?1。试试不用drawImage,看看文档里还有没有别的函数可以调用。2。你自己处理文件的读写和绘制。内存中之保存原始的GIF文件,而不是他的位图形式。另外开个缓冲区,把目前正在显示的区域转换成位图存入,显示时从这个缓冲区读数据。不过,你必须对gif格式有深入的了解。1024x768的分辨率来说,内存差不多是6-7M吧。
全党抛砖引玉了,祝好运!
windows可能作了优化了,呵呵,废话。那么,有什么办法呢?1。试试不用drawImage,看看文档里还有没有别的函数可以调用。2。你自己处理文件的读写和绘制。内存中之保存原始的GIF文件,而不是他的位图形式。另外开个缓冲区,把目前正在显示的区域转换成位图存入,显示时从这个缓冲区读数据。不过,你必须对gif格式有深入的了解。1024x768的分辨率来说,内存差不多是6-7M吧。
全党抛砖引玉了,祝好运!