javascript - 调整和缩放 HTML5 Canvas 和内容

标签 javascript html canvas resize zooming

我正在开发一个将绘图界面(如 Paint 或 Photoshop)合并为 HTML5 canvas 元素的应用程序。

我希望能够动态调整 Canvas 元素及其上的像素数据的大小,以模拟缩放功能。我的想法是拥有某种包含 Canvas 元素的视口(viewport)。然后我可以在视口(viewport)内调整 Canvas 及其内容的大小(保持相同大小)。

我如何最好地实现此功能?

最佳答案

您可以通过引入另一个 Canvas 将显示与绘图表面分开,从而非常轻松地做到这一点。使用

创建一个隐藏的 Canvas
var canvas = document.createElement('canvas');

然后将整个场景绘制到此 Canvas 上。然后使用 drawImage 将此 Canvas 的内容绘制到用户实际可见的另一个 Canvas 上。方法(也可能接收 Canvas 而不是图像)。如果你想绘制放大的场景,你可以通过在绘制时使隐藏 Canvas 上的源矩形(sysxswsh参数在drawImage上变小)来实现它到视觉 Canvas 。这将为您提供缩放效果。

但是,如果您无论如何都在 Canvas 上完全重绘每一帧,您也可以简单地看一下 scale method Canvas 对象。

关于javascript - 调整和缩放 HTML5 Canvas 和内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7033116/

相关文章:

javascript - 在 D3 转换中使用 CSS 值

javascript - 织物对象的不透明度 slider

javascript - 在浏览器中显示 3D 内容的最标准方法是什么?

python删除html标签,包括html实体,但不包括带有 '&'前缀的普通文本

html - Bootstrap 2.3 - div 行之间不需要的垂直空间

ios - iOS中交互式2D编程方式的最佳实践

python - 在应用程序之间发送 Canvas 数据

javascript - 是否可以使用 javascript 测试用户的浏览器/操作系统是否支持给定类型的链接?

javascript - 尝试编写一个依赖于两个不同连接表的 'or' 查询

javascript - 货币数据表格式