您好,登錄后才能下訂單哦!
本篇內容主要講解“Canvas引入跨域圖片導致toDataURL()報錯如何解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Canvas引入跨域圖片導致toDataURL()報錯如何解決”吧!
【場景】
用戶打開網頁,則請求騰訊COS(圖片服務器)上的圖片。使用canvas繪圖。
然后,用戶可以重新選擇圖片、裁剪、上傳。
【問題】
圖片首次載入,選擇新圖片后裁剪、繪制都沒有問題。但上傳失敗,報錯如下:
Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
經過了解,需要在圖片首次引用時,設置crossOrigin字段:
var c=document.getElementById("cover_show"); var img=new Image(); img.src="http://vsqx-cover-xxxxxx.coscd.myqcloud.com/"+this.vsqx_uid+".jpg"; //增加這一行: img.setAttribute("crossOrigin",'anonymous'); img.onload = function(){ var cxt=c.getContext("2d"); cxt.drawImage(img,0,0,300,150,0,0,200,126); }
然后再次運行。發現圖片首次載入時,不顯示了。
到此,相信大家對“Canvas引入跨域圖片導致toDataURL()報錯如何解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。