2011-08-11 101 views
3

我正在研究将绘图界面(如Paint或Photoshop)合并为HTML5画布元素的应用程序。调整大小和缩放HTML5画布和内容

我希望能够动态调整canvas元素及其上的像素数据以模拟缩放功能。我的想法有一些包含画布元素的视口。然后,我可以调整视图内的画布及其内容的大小(保持相同的大小)。

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

+0

相关环节能省“屏幕截图”使用'.toDataURL()',然后调整画布上,并得出截图捉襟见肘。然而,它看起来很模糊,因为画布不会'像素化'地调整大小。 – pimvdb

+0

可能的重复:http://stackoverflow.com/questions/331052/how-to-resize-html-canvas-element –

回答

9

通过引入另一个画布,您可以非常容易地通过从绘图表面分离显示来执行此操作。创建一个隐藏的画布使用

var canvas = document.createElement('canvas'); 

然后将您的整个场景绘制到此画布。然后将此画布的内容绘制到使用drawImage方法(也可能会接收画布而不是图像)的用户实际可见的另一个画布。如果要绘制放大的场景,可以通过将隐藏画布上的源矩形(其屏幕上的源矩形(sy,sx,swsh参数drawImage)绘制到较小的图形)进行绘制。这会给你缩放效果。但是,如果您完全重新绘制画布上的每一帧,您也可以简单地看一下画布对象的scale method

+0

谢谢,你给了我一些好地方开始! –

+0

我会试着+1然后:) –

+0

我试过了,但我认为我的帐户还没有这个能力。 :( 你仍然对工作做得很满意。:D –