我正在尝试更改HTML画布的分辨率(而不是宽度和高度)。画布应保持与屏幕相同的宽度和高度,但渲染分辨率可更改。我可以通过使用浏览器中的缩放功能来部分复制所需内容,但我想知道是否有编程方法来实现这一点。以下是我尝试过的内容:
function resize() {
screenWidth = mathRound(window.innerWidth);
screenHeight = mathRound(window.innerHeight);
calculateUIScale();
var scaleFillNative = Math.max(screenWidth / maxScreenWidth, screenHeight / maxScreenHeight);
c.width = screenWidth;
c.height = screenHeight;
graph.setTransform(scaleFillNative, 0, 0, scaleFillNative, ((screenWidth - (maxScreenWidth * scaleFillNative)) / 2), ((screenHeight - (maxScreenHeight * scaleFillNative)) / 2));
graph.imageSmoothingEnabled = false;
graph.webkitImageSmoothingEnabled = false;
graph.mozImageSmoothingEnabled = false;
}
这使得画布适合屏幕。我想知道是否可以通过某种方式缩放画布元素以模拟不同的分辨率。
我尝试过这样做:
c.width = 40;
c.style.width = 400;
但是现在画布非常小。
width
和height
属性定义了画布包含的像素数量。相应的 CSS 属性定义了画布的尺寸(一旦设置)。如果这两组尺寸不同,你就在缩放画布上的像素;无论是缩小还是放大。 - Thomas