当前位置: 首页 > 知识库问答 >
问题:

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

堵景天
2023-03-14

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

我在谷歌上搜索了一下,看起来大小可能会因平台和浏览器的不同而有所不同。

是浏览器分配的内存和内存设置决定了这一点吗?

编辑:我在这里找到了一些信息:

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个答案

岳炎彬
2023-03-14

Canvas规范声明“元素可以通过样式表任意调整大小”,因此基于这一点以及您从链接中共享的信息,IE很可能实现了自己的最大大小。这似乎很有用,但没有提供任何来源来支持显示的数字(最喜欢的答案)。

阎功
2023-03-14

超文本标记语言画布元素的最大面积、宽度和高度取决于浏览器、操作系统和可用硬件。不幸的是,浏览器没有提供确定其限制的方法,也没有在创建不可用的画布后提供任何类型的反馈。

可以检测浏览器的画布限制,但遗憾的是,不使用本机API。请看我的答案,在一个

 类似资料:
  • 问题内容: 我有两台linux机器(都是VM),一台有12GB内存,另一台有8GB内存。 我试图在两台机器上启动相同的Java程序,并且最大可能的最大堆大小(使用-Xmx标志)。以下是我得到的结果。 12GB机器:9460MB 8GB机器:4790MB 如果我指定的最大堆大小超出了限制,我将得到以下错误。 我检查了两个系统中的可用内存(使用命令),然后得到关注。 12GB机器:大约3GB可用空间。

  • 我有两台Linux机器(都是虚拟机),一台有12GB内存,另一台有8GB内存。 我尝试在两台机器上启动相同的java程序,并尽可能地使用最大堆大小(使用-Xmx标志)。以下是我得到的结果。 12GB 机器容量: 9460MB 8GB 机器容量: 4790MB 如果我指定的最大堆大小超出了上述限制,我会得到以下错误。 我检查了两个系统中的空闲内存(使用< code>free命令),得到如下结果。 <

  • 我目前正在研究选择算法,即中位数。 我遇到了下面两个句子: 在计算机科学中,选择算法是寻找列表或数组中第k个最小数的算法; 在计算机科学中,中位数是一种近似(中位数)选择算法,经常用于为精确选择算法(主要是quickselect)提供良好的中枢,该算法选择最初未排序数组的第k个最大元素。 第k个最小/最大元素是什么意思?为了使问题更具体一点,考虑以下(未排序)数组: 例如,第五小的元素是什么?第五

  • 我玩OpenSSL。我看到不同的openssl类型使用类型。 例如: 每日生活津贴签名 OpenSSL中的< code>BIGNUM是: 我不明白如何为特定的算法选择bignum,bignum数组的大小呢?

  • 问题内容: GO Map中可以存储的最大元素数量是多少?如果我需要经常访问Map中的数据,那么在长时间运行的程序中,继续向Map中添加项目并从中检索是一个好主意吗? 问题答案: 映射中元素的数量没有理论限制,但映射长度类型的最大值为。的最大值取决于您编译到的目标体系结构,在32位的情况下,在64位的情况下,可能是最大值。 请注意,作为实施限制,您可能无法完全添加max-int元素,但是数量级将相同

  • 下面的一些代码似乎太明显了,使用最右边的分支遍历树,因为这是所有最大值所在的位置。然而,我在RobertSedgewick的算法书中看到的这段代码有一些地方我不太懂。 在私有方法中,如果x的右子元素为null,为什么要返回左元素?根据我的理解,如果x没有正确的子节点,并且是我们可以访问的最正确的节点,那么x将是最大值。另外,我不明白什么时候在第二个方法的最后一行返回x。