記錄日期:2019年6月26日 22點21分
Canvas 的內容保存為圖片,但是一直不成功。報錯信息如標題,意思指被污染的畫布不能被導出。
理論上來講,導出為圖片是一定可行的,但是被污染的畫布是不允許被導出的。
問題就在於,什么叫被污染的畫布。
找到官網說明,參考鏈接:https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image
圖上划線的部分,為什么要增加這樣的限制,並且說明從其他地方(未經允許跨域的源)獲取的數據加入畫布內容。下面列舉了,如從img和svg元素獲得的內容是不允許的,因為這兩個元素允許使用外部圖片(來源不明),涉及跨域了,所以從這兩個元素導入過內容的畫布,是不能被導出的。
項目中,在畫布准備的時候,從img導入了一個准備的圖片,於是畫布被污染了,后面完成時需要導入時,就報錯 “Tainted canvases may not be exported”。
解決方案:不從img導入內容,結果可以正常導出。