2010-12-04 126 views
2

如何將圖像或數據轉換爲畫布?我在http://www.nihilogic.dk/labs/canvas2image/看到另一種方式,但我也想了解如何在第一個位置創建畫布。數據/圖像到畫布

我問這個問題的原因是因爲我想創建一個小應用程序,讓用戶創建一個畫布「圖像」,將其保存爲某些內容,並能夠在未來重新打開畫布修改。我認爲datauri是保存畫布的好方法,但我不確定我如何才能重新打開數據並使用畫布來修改圖形。

謝謝!

回答

4

使用數據URI的數據作爲源創建一個圖像元素,然後使用drawImage方法將其繪製到畫布:

var ctx = document.getElementById('ctx').getContext('2d'); 
var img = new Image(); 
img.src = uriData; 
img.onload = function() { 
    ctx.drawImage(img,0,0); 
} 

更新:澄清,CTX是2D的上下文,而不是一個帆布目的。

+0

我這樣做,它說Uncaught TypeError:Object# has no method'drawImage ' (匿名函數) – DavidT 2010-12-06 22:57:11

+0

@DavidT:我已經更新了答案,以澄清** ctx **是不是頂級Canvas對象的2D上下文(這就是您得到該錯誤的原因)。 – kanaka 2010-12-07 14:18:15

-1

我得到這個工作:

var img = new Image(); 
var uriData = "...."; // replace with dataUri 

img.onload = function() { 
    var ctx = document.getElementById('ctx').getContext('2d'); 
    ctx.drawImage(img,0,0); 
} 

img.src = uriData; 

貌似訣竅是,Canvas元素需要它的寬度和高度指定。當我沒有指定尺寸時,它變得有點隨意,它只顯示我的大圖像的一部分(來自dataUri)