簡體   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