Canvas 元素(使用 Konva.js)的正确 HiDPI 渲染?

Proper HiDPI rendering of Canvas elements (with Konva.js)?

我使用 Konva.js 中的组件构建了一个小 HTML5 Canvas 动画。一切都很好,除了 Canvas 元素是我期望的大小的 2 倍 - 我想是因为我有一个 HiDPI/Retina 显示。具体来说,该元素看起来像

<canvas width="2048" height="1000" style="padding: 0px; margin: 0px; border: 0px; background: transparent; position: absolute; top: 0px; left: 0px; width: 1024px; height: 500px;"></canvas>

样式大小符合我的预期,但顶级 width/height 属性 值是两倍。

我在 https://github.com/jondavidjohn/hidpi-canvas-polyfill 尝试了 HiDPI polyfill,但是虽然这使我的 Canvas 元素达到了预期的大小,但 Konva.js 元素似乎没有调整大小,并且布局所有这些形状都变得一团糟。

所以我想知道是否有人通过 Konva.js 获得了良好的 HiDPI 行为 - 如果是,如何,如果没有,关于我如何让它工作的任何提示? (让我的动画在尽可能多的设备上以类似方式呈现很重要。)

Konva.js 自动处理 Retina 显示。 Konva 使所有 canvas 尺寸变大两倍,以便在 HDPI 设备上自动获得清晰的结果。所以你不用担心。