toDataURL vs toDataURLHD

toDataURL vs toDataURLHD

本文关键字:toDataURLHD vs toDataURL      更新时间:2023-09-26

所以我看到有一些新的(ish)函数正在被提出;toDataURLHDtoBlobHDgetImageDataHD等,"以本机画布位图分辨率返回[数据]"(http://developers.whatwg.org/the-canvas-element.html)。

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

我一直在尝试我能想到的尽可能多的缩放方法(fiddle:http://jsfiddle.net/SktKQ/)它似乎总是一个像素接一个像素,但这很难得出结论,而且我没有任何高分辨率的显示器可以测试

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

画布上的WhatWG文档显示以下内容:

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

toDataURL()方法以96dpi的分辨率返回数据。toDataURLHD()方法以原生画布位图分辨率返回它。

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

此外,还规定了以下内容:

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

然而,不能保证使用来自toDataURL的图像数据不会具有可见效果(分辨率较差)。