2013-07-10 51 views
1

我正在用HTML5/JavaScript开发一个图表应用程序,所有图形都使用SVG,使用Raphael或qooxdoo SVG(尚未定案)完成,绘图区域应使用自定义背景图像。太大而无法下载(2560x1600视网膜分辨率为几兆字节),这就是我为什么要构建它的原因,从瓦片和应用位图效果组成它,为此,我使用HTML5 canvas。之后,生成的背景图像必须为了实现这一点,我从画布中导出了data URI,并在SVG中使用<image xlink:href="data:image/png;base64,..."/>使用带有SVG的HTML5画布

这适用于简单的示例,但我对生产中的内存使用情况有点担心。内存需要12MB(2560 * 1600 * 3字节),需要多少内存?我猜想至少有几兆字节将被分配来存储base64编码的PNG压缩表示作为数据URI,另外12兆字节将会被传送到SVG <image>元素的缓冲区。

我不知道是否有一种方法来短路,并避免冗余图像编码解码?

+0

需要对图像是一个实际的SVG元素是由要求规定为执行摇摄/变焦/整个绘制的旋转区域,当背景是SVG树的一部分时更容易完成。 此外,SVG必须导出到客户端的PNG(我使用[canvg](http://code.google.com/p/canvg/))。 –

+0

在Firefox上,您可以通过about:memory检查使用的内存 –

回答