繁体   English   中英

在HTML5 canvas元素中移动矩形(像素)区域的最快方法是什么

[英]What is the fastest way to move a rectangular (pixel) region inside a HTML5 canvas element

我想实现HTML5 canvas元素内容的垂直滚动。 我不想再渲染整个内容。 相反,我想向下/向上移动整个内容,只渲染已滚动到视图中的区域。

我尝试了getImageDataputImageData函数,但在我的测试中,它们几乎和重新绘制整个场景一样慢。

// scroll 20px down
var data = ctx.getImageData(0, 0, width, height-20);
ctx.putImageData(0, 20);

在canvas元素中复制矩形像素区域的最快方法是什么?

尝试这个:

ctx.drawImage(ctx.canvas, 0, 0, width, height-20, 0, 20, width, height-20);

drawImage可以为第一个参数提供HTMLImageElementHTMLCanvasElementHTMLVideoElement

对于绝对速度,我会使用overflow:hidden set在<div>使用超大的<canvas> ,然后使用常规DOM方法滚动<div><canvas> <div>

当然,这会牺牲内存使用而有利于速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM