canvas 圖片跨域處理


引子

近期的工作中處理圖片合並時,碰到圖片來源跨域的情況,在此記錄。

圖片跨域處理

在用 canvas 合成圖片時,放在畫布里面的圖片,有些圖片源是另外一個域名,由於同源策略,首先需要在服務配置中添加對應的 Access-Control-Allow-Origin,允許對應域名的請求。在這次處理過程中,還發現如果有用 CDN 進行加速,那么對應的 CDN 的配置也要添加這個請求頭。

此外在合成圖片的時候,要給對應的圖片添加 crossOrigin 屬性,否則會被認為污染了畫布,無法繼續合成。詳細可見文檔說明。

var img = new Image();
img.crossOrigin = "Anonymous";
img.src = '***';
img.onload = function() {}

最終合成圖片的處理,要在圖片加載完成的事件處理程序中才行,不然對應圖片不會出現在合成的圖片中。

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM