-1
我的畫布上有一些圖畫,例如筆畫,圓弧和矩形,並且我想將畫布上的圖形保存爲一個JavaScript變量,該變量可以再次用於將畫布圖形恢復到另一個畫布上。我可以將HTML5畫布繪圖保存到變量嗎?
這可能嗎?
我的畫布上有一些圖畫,例如筆畫,圓弧和矩形,並且我想將畫布上的圖形保存爲一個JavaScript變量,該變量可以再次用於將畫布圖形恢復到另一個畫布上。我可以將HTML5畫布繪圖保存到變量嗎?
這可能嗎?
您可以簡單地使用HTMLCanvasElement.toDataURL(type)
,然後繪製它創建一個新的Image
,將其來源指向保存的數據作爲字符串。
替代方法:使用CanvasRenderingContext2D.getImageData(x, y, width, height)獲取圖像數據,然後使用CanvasRenderingContext2D.putImageData(ImageData)
進行繪製。
在另一種情況下,您需要將每個繪圖點設置爲對象令牌。如果你在你的問題中指定,我更新答案。
基本的東西 - 你真的應該谷歌搜索它。 **保存:**'var url = canvasElement.toDataURL()',** Restore:**'var img = new Image(); img.onload =函數(){otherContext.drawImage(IMG,0,0);}; img.src = url' – markE
@markE我認爲OP在一個畫布路徑命令序列化程序後更多,我也想我記得你有一個鏈接。如果不是,沒有必要通過'toDataURL' +'img' +'drawImage','ctx2.drawImage(canvas1)'可能就足夠了。 – Kaiido
@Kaiido。謝謝 - 你有敏銳的眼光從Q讀這個! :-) [Here's](http://stackoverflow.com/questions/36368722/apply-existing-reference-to-canvasrendingcontext2d-to-an-element/36369364#36369364)上下文命令序列化程序的開始 – markE