2013-08-19 63 views
4

我已經使用設置畫布的背景圖像:一次畫布有一個背景圖像canvas.toDataURL(「PNG」)停止工作

canvas.setBackgroundImage(source, canvas.renderAll.bind(canvas)); 

這是偉大的工作,但現在我

canvas.toDataURL('png') 

停止工作。

並且清除畫布並不清除背景圖像。 你能解釋一下哪裏出錯了嗎?

下面的代碼工作正常,直到我添加一個背景圖像。

document.getElementById('save').onclick = function() {  
    window.open(canvas.toDataURL('png')); 
} 

另外:

canvas.clear(); 

的代碼不清除背景圖像。

+0

在控制檯中是否出現安全錯誤? 如果圖像來自不同的域,則canvas.toDataURL()不起作用(http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom -canvas-todataurl,https://developer.mozilla.org/en-US/docs/HTML/CORS_Enabled_Image) canvas.clear()沒有刪除背景圖片。你可以使用canvas.setBackgroundImage()。 – Kienz

+0

否控制檯中顯示沒有錯誤。 Iam打開一個用base-64數據打開的新窗口,但圖像沒有顯示出來。 – John

+0

你使用哪種瀏覽器?如果您使用IE9,它不起作用(https://github.com/kangax/fabric.js/issues/172)。鉻在它爲我工作。 – Kienz

回答

0

var canvas = window._canvas = new fabric.Canvas('c');

canvas.setBackgroundImage(document.getElementById('img1').src, canvas.renderAll.bind(canvas)); 

document.getElementById('dataurl').addEventListener('click', function() { 
    window.open(canvas.toDataURL()); 
});