2010-06-21 104 views
2

是否可以創建任意大小的緩衝區,並像在canvas元素上那樣工作?創建一個緩衝區並對其進行處理

我想創建一個圖形(> 10'000 x 10'000像素),並使用像drawImage()那樣的方法。一切完成後,一部分應該被複制到canvas元素。 createImageData()可以製作一個緩衝區,但是沒有辦法使用像drawImage()這樣的方法。

有沒有一種方法可以實現我的需求,而無需製作隱形畫布元素?

謝謝!

回答

6

爲什麼不使用canvas元素?它不必是「不可見的」(如「它是頁面的一部分,但是被設置爲不可見」)...只需創建一個如上所述的新畫布,並且不要將其附加到文檔中。現在,您可以隨心所欲地執行任何操作,而無需擔心在實際頁面上使用額外的隱藏畫布。

+0

我不確定「如上所述」是什麼意思,但@David_Murdoch答案演示瞭如何創建一個不在顯示的文檔中的新畫布:var canvas = document.createElement(「canvas」) ;' – nobar 2012-11-05 06:52:27

1

看看文檔片段。 John Resig DOM DocumentFragmentsMDC

我不確定它是否是跨瀏覽器......也許有人可以爲我澄清?


編輯:不知道我在想什麼

您是否嘗試過:

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

containerElement.appendChild(canvas.cloneNode());