Javascript toDataURL vs toDataURLHD

Javascript toDataURL vs toDataURLHD,javascript,html5-canvas,Javascript,Html5 Canvas,因此,我看到有一些新的(ish)功能被提出toDataURLHD,toBlobHD,getImageDataHD,等等。它“以本机画布位图分辨率返回[数据]”() 但我不懂术语。这是否意味着非高清版本在返回图像数据之前会重新缩放图像数据?(即,在高分辨率显示器上,toDataURL会产生比实际画布质量更低的图像),或者这只是指图像中每英寸像素的元数据 我一直在尝试尽可能多的缩放方法(fiddle:),看起来总是逐像素缩放,但这很难得出结论,而且我没有任何高分辨率显示器可供测试 我所要寻找的是:我

因此,我看到有一些新的(ish)功能被提出
toDataURLHD
toBlobHD
getImageDataHD
,等等。它“以本机画布位图分辨率返回[数据]”()

但我不懂术语。这是否意味着非高清版本在返回图像数据之前会重新缩放图像数据?(即,在高分辨率显示器上,
toDataURL
会产生比实际画布质量更低的图像),或者这只是指图像中每英寸像素的元数据

我一直在尝试尽可能多的缩放方法(fiddle:),看起来总是逐像素缩放,但这很难得出结论,而且我没有任何高分辨率显示器可供测试

我所要寻找的是:我能否依靠
toDataURL
&Co.制作画布的逐像素副本,其宽度和高度完全等于元素上设置的属性?(如果是这样,高清版本有什么意义?

请说出以下内容:

坐标空间的大小不一定表示实际坐标空间的大小 用户代理将在内部或渲染期间使用的位图。关于高清晰度 显示,例如,用户代理可以在内部使用位图,每个位图具有两个设备像素 坐标空间中的单位,以便渲染始终保持高质量。 反走样同样可以通过使用更高分辨率的位图进行过采样来实现 分辨率高于显示器上的最终图像

方法以96dpi的分辨率返回数据。 方法以本机画布位图分辨率返回它

我的理解是,
toDataURL
只返回CSS像素(96 DPI);但该实现可以自由使用更高的像素密度,而这只能通过
toDataURLHD
看到。也就是说,即使您将画布定义为800x600(CSS像素大小),一个实现实际上也可以使用192 DPI的密度(1600x1200);如果使用前者,您可以得到800x600,而
HD
方法可以保证获得实际像素

此外,声明如下:

因此,在2D上下文中,调用drawImage()方法来呈现 如果给定适当的维度,则画布的toDataURLHD()方法没有可见的效果


但是,不能保证使用
toDataURL
中的图像数据不会产生明显的效果(分辨率更差)。

我没有想到这种可能性。因此,如果我在分辨率为2倍的显示器上将画布设置为100x100,那么实际上可能会得到大小为200x200的画布(显示为100x100)。在这种情况下,
toDataURL
将给出大小为100x100的图像(通过某种方法缩小),但
toDataURLHD
将给出像素200x200图像的像素。这符合你对它的理解吗?(相关问题:我能强迫它不要在高分辨率显示器上产生更大的图像吗?)我认为这也是我的理解,但我只是阅读了文件。我认为这是为苹果新的视网膜显示器等设备设计的;他们可以利用设备的扩展渲染功能,同时以同样的方式进行布局。至于“强制它不生成更大的图像”,那么我也找不到答案。截至今天,
ToDaturlHD
仍然不存在。Chrome既不支持也不在MDN的文档中提及。事实上,从今天起,如果画布显示为100 x 100,
toDataURL()
将为您提供一个200 x 200分辨率的屏幕。我正试图找到一种方法来获得100 x 100的图像。