关于 java 2D 占用内存的问题刚刚开始接触 Java 2D, 要处理比较大的图片(4000×4000 的gif)。 发现用window 自带的看图工具打开只需要 大概6,7M的内存, 可是用java 2D的drawImage画出来 居然用了60M。。
怎样可以减少内存占用啊? 因为我后面还有10000×10000的图要画呢。。这样电脑不是要暴拉[小Z (4-5 9:47, Long long ago)]
[ 传统版 |
sForum ][登录后回复]1楼
有点急, 各位帮帮忙啊 [小Z (4-6 14:16, Long long ago)] [ 传统版 | sForum ][登录后回复]2楼
试试看,我不是专家我想,java可能把gif转换成了位图,所以才会那么大。4000 X 4000 差不多是32M,如果每个象素用1个字节(gif应该够了吧),那么占用内存就是32M了。java要追求跨平台,大概位图就是跨平台的首选了。
windows可能作了优化了,呵呵,废话。那么,有什么办法呢?1。试试不用drawImage,看看文档里还有没有别的函数可以调用。2。你自己处理文件的读写和绘制。内存中之保存原始的GIF文件,而不是他的位图形式。另外开个缓冲区,把目前正在显示的区域转换成位图存入,显示时从这个缓冲区读数据。不过,你必须对gif格式有深入的了解。1024x768的分辨率来说,内存差不多是6-7M吧。
全党抛砖引玉了,祝好运![大力神 (4-7 12:45, Long long ago)]
[ 传统版 |
sForum ][登录后回复]3楼
(引用 大力神:试试看,我不是专家我想,java可能把gif转换成了位图,所以才会那么大。4000 X 4000 差不多是32M,如果每个象素用1个字节(gif应该够了吧...)感谢 大力神^_^我看了一些关于图像格式的资料, 没看懂-_-|||
所以决定把大图切小, 然后一点一点load..希望可以成功^_^
谢谢了^_^[小Z (4-12 17:09, Long long ago)]
[ 传统版 |
sForum ][登录后回复]4楼