我正在开发具有使用图层功能的2D绘图的简单应用程序。我尝试了不同的平台(.NET,Java,QT ......),我总是遇到同样的问题。我无法理解如何有效地将所有图形层/图像/位图存储在内存中,尤其是当canvas(每个存储图形数据的对象)大小很大时(如3000x3000像素左右)。我想除了将每一层存储为图像/位图对象(或任何仍会消耗大量内存的颜色数据数组)之外别无他法。
我已经尝试过:
那么存储大量图形对象的正确方法是什么?像Photoshop这样的流行软件如何处理许多大图层并且仍能快速工作?有谁知道吗?
---- S O L U T I O N ----
好!感谢邪恶,我解决了这个问题。 看起来当我从缓存文件中读取一小块需要的图层时,内存分配比我尝试分配整个图层时要快得多。
这就是我的所作所为:
工作速度非常快,内存中只分配了一个可见的位图/图像。
不好的一面:每个图层的缓存文件仍占用硬盘的空间。但是现在每个人都拥有大型硬盘并不重要。
答案 0 :(得分:0)
嗯,这取决于你的图纸的性质是什么?它们最初是基于矢量的(如地图,图表是什么)或者您使用一组光栅图像作为一组图层?