提示加快我的画布应用程序
Hints to speed up my canvas app
这是关于WEB开发,Canvas, HTML5。
我正在开发一个使用HTML5画布和JQuery的绘画应用程序。你可以画几个图层,你可以用放大镜效果动态缩放。
架构是多重画布:
背景:- canvas-bg
layers:
layer0
layer1
layer2
…
- layerN
工具:
ghost(当用户想要画一条线时显示一条"幽灵"线)。释放鼠标确认绘制)
magnify-layer
我的问题是缩放。为了得到我想要的效果,我在放大层上重新绘制了所有图层。当然,当你绘制一张2000*2000的图片时,它是非常慢的。更常见的是,你可以移动放大镜来放大任何地方,重绘是在MouseMoveEvent上调用的。
为了更快,我只画玻璃下面的小区域(而不是整个层)。但它仍然很慢。我怎样才能加速知道呢?
插图:http://imgur.com/hAtYsZi
你可以看到在黑色圆圈区域被放大。我用这段代码开始:
dsamo: http://www.script-tutorials.com/demos/167/index.html
试试这个…这可能有帮助。
我猜你在做传统的"放大":你在降低分辨率下显示,然后在全分辨率下"放大"。
因此,当用户选择放大镜工具时,将所有图层"平坦"到另一个画布上。
然后将平面画布缓存为1/2分辨率的图像。这将成为未放大的背景。
最后做你的放大技巧:从平坦的画布上抓取适当的像素,并在浮动放大镜中显示它们。
是的,在使图像平坦化的过程中会有一些开销和时间,但这可能会被用户选择和定位放大镜所花费的时间所抵消。
相关文章:
- 我在哪里从 React Redux 应用程序中的服务器获取初始数据
- 有没有一种方法可以在IE8中解决我的Rails javascript应用程序.js的问题
- 获取包含我的谷歌应用程序脚本的页面的url
- 胡子.js卡在我的 Rails 应用程序中的 0.4.0-dev 上
- 如何消除我的应用程序上的希腊字符
- 我的应用程序中的可点击元素应始终是锚标记
- 如何创建重用我的 JS 库的 iPad 应用程序,这些库是为 Web 应用程序构建的
- ASP.NET:是否可以将CSS或Javascript注入到我的Web应用程序中的每个页面中
- 为什么IE无法正确显示我的HttpHandler Web应用程序中的特殊符号
- 为什么我的应用程序中的某些组件在IE7中工作,而在IE9中不起作用
- 为什么我的Mac应用程序中的WebView html拒绝加载JQuery或任何外部脚本
- Angularjs模式窗口在我的应用程序中的实现
- 我曾经跟随某人的代码样本,并尝试应用到我的HighChart程序,但我可以'I don’我一点也做不到
- 如何从我的web应用程序中的Java脚本文件中获得加密的密码
- 如何始终解析相对于我的web应用程序根的URL
- 我可以使用标准Javascript应用程序中的Google Polymer吗
- Facebook应用程序-我如何计算发件人邀请的朋友数量
- 访问导致我的应用程序崩溃的数组元素
- 我的网络应用程序中的谷歌地图API
- Javascript应用程序-我的代码怎么样