在Retina显示器上渲染HTML到画布
Rendering HTML to Canvas on Retina displays
这篇MDN文章(引用这篇博客文章)教授如何将HTML内容呈现到画布上。我已经在我的项目中实现了它,它工作了。
但是在"视网膜"显示器上,它只以显示器支持的全分辨率的一半绘制到画布上。例如,如果我有一个画布,我在上面呈现HTML字符串"Hello",在画布旁边我放了一个<span>Hello</span>
,后者(由浏览器以通常的方式呈现)比前者(作为HTML呈现到画布上,使用上面链接中的技术,使用SVG和Image
)更流畅和清晰。
我相信有一种方法来检测视网膜显示,这样我就知道什么时候需要更高的分辨率,在这个源代码中给出。但是当我检测到我在视网膜显示器上时,我的问题是:
是否有一种方法可以在全视网膜分辨率下呈现HTML到画布?
看这篇文章
var image = new Image();
var ratio = window.devicePixelRatio || 1;
var canvas = document.querySelector("canvas");
var context = canvas.getContext("2d");
// 1. Ensure the element size stays the same.
canvas.style.width = canvas.width + "px";
canvas.style.height = canvas.height + "px";
// 2. Increase the canvas dimensions by the pixel ratio.
canvas.width *= ratio;
canvas.height *= ratio;
image.onload = function() {
// 3. Scale the context by the pixel ratio.
context.scale(ratio, ratio);
context.drawImage(image, 0, 0);
};
image.src = "/path/to/image.svg";
我试过了,很管用!
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何编写HTML输入的JS内联
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量
- 如何使Javascript动态html表及其上的事件
- 在chrome.tabs.onCreated之后加载HTML页面
- 如何在vs2002中调试html页面
- 如何使用javascript或html下载PDF格式的填写表单
- 视频HTML没有'无法在Internet Explorer 11上工作
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 使用angular重定向到html页面
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 在html Select中添加搜索
- 多级HTML表单
- 在Retina显示器上渲染HTML到画布