是什么决定了IE11中canvas html元素的最大大小?

时间:2017-09-04 13:48:05

标签: html html5 canvas memory browser

我正在尝试使用canvas元素,但高度不能超过16384像素。如果我尝试使用16385像素,我会在IE11中获得IndexSizeError。这在Chrome中运行良好。画布用于PDF生成,我没有时间将生成移动到服务器。

我用Google搜索了一下,根据平台和浏览器,它的大小可能会有所不同。

浏览器是否分配了内存和内存设置来决定这个?

编辑:我找到了一些信息here

Note  The maximum size of the rendered area on a canvas is from 0,0 to 8192 
x 8192 pixels, regardless of the size of the canvas. For example, a canvas     
is created with a width and height of 8292 pixels. A rectangular fill is 
then applied as "ctx.fillRect (0,0, canvas.width, canvas.height)".Only the 
area within the coordinates (0, 0, 8192, 8192) can be rendered, leaving a 
100 pixel border on the right and bottom of the canvas.

好像我可以有两倍的尺寸。也许这只适用于IE9。

2 个答案:

答案 0 :(得分:1)

HTML canvas元素的最大面积,宽度和高度取决于浏览器,操作系统和可用的硬件。不幸的是,浏览器无法提供确定其局限性的方法,也无法在创建无法使用的画布后提供任何形式的反馈。

可以检测浏览器的画布限制,但不幸的是,不使用本机API。有关详细信息,请参见Maximum size of a <canvas> element线程中的答案。

答案 1 :(得分:0)

Canvas Specification表示“元素可以通过样式表任意调整大小”,因此基于此以及您从链接共享的信息,IE必须实现自己的最大大小。 This似乎很有用,但没有提供任何来源来备份显示的数字(最喜欢的答案)。