我正在使用glfx.js編輯我的圖像,但是當我試圖使用toDataURL()
函數獲取該圖像的數據時,我得到一個空白圖像(寬度與原始大小相同圖片)。Canvas toDataURL()僅在Firefox中返回空白圖像
奇怪的是,在Chrome中,腳本完美無缺。
我想提的是,圖像中canvas
使用onload事件加載:
img.onload = function(){
try {
canvas = fx.canvas();
} catch (e) {
alert(e);
return;
}
// convert the image to a texture
texture = canvas.texture(img);
// draw and update canvas
canvas.draw(texture).update();
// replace the image with the canvas
img.parentNode.insertBefore(canvas, img);
img.parentNode.removeChild(img);
}
而且我的形象的路徑是在同一個域;
問題(在Firefox中)是當我點擊保存按鈕。鉻返回預期的結果,但火狐返回這個:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA7YAAAIWCAYAAABjkRHCAAAHxklEQVR4nO3BMQEAAADCoPVPbQZ/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
... [ lots of A s ] ...
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAzwD6aAABkwvPRgAAAABJRU5ErkJggg==
什麼可能導致這個結果,我該如何解決它?
就是你正在編輯在同一個域的形象呢?只是爲了排除顯而易見的。 – A1rPun 2014-11-06 15:52:30
是的。我會編輯我的帖子提及!在Firefox中(而不是在Chrome中)存在圖像不在同一域中的問題? – boyd 2014-11-06 15:53:30
似乎是某個地方發生的異步操作。如果調用toDataURL()時未加載圖像,畫布將爲空白。 – K3N 2014-11-06 16:08:01