用 css 样式覆盖的画布内联高度和宽度属性。这是一个错误吗?

Rut*_*rde 5 canvas image-scaling html5-canvas

我最近问了一个问题,如何在不裁剪的情况下将比画布大的图像绘制到画布上,并在对其进行一些更改后将图像保存回原始尺寸。我发现解决方案是为大于图像的画布设置内联heightwidth属性,并使用 cssheightwidth属性来设置画布的样式以适应您的布局。

例如,假设我的图像尺寸范围在 400 像素到 2000 像素之间。但我不希望画布那么大,我也不希望图像也被裁剪(因为当用toDataURL画布上的内容保存图像时,保存的就是保存的内容)。这是有效的:

//style
#mycanvas{
    width: 400px;
    height: 400px;
}

<canvas id="mycanvas" width="2000" height="2000" />
Run Code Online (Sandbox Code Playgroud)

这工作正常,我的图像效果很好。但是这种行为是否有问题并且将来一定会改变/修复?我打算将此解决方案用于手头的任务。

任何指导?

pim*_*vdb 6

此行为通常用于控制画布的大小:

  • 分辨率属性
  • 用于拉伸/收缩的 CSS

请参阅HTML5 中的画布宽度和高度