欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么解決canvas繪圖時遇到的跨域問題

這篇文章主要介紹了怎么解決canvas繪圖時遇到的跨域問題,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)自2013年起,公司以網站設計、網站制作、系統(tǒng)開發(fā)、網絡推廣、文化傳媒、企業(yè)宣傳、平面廣告設計等為主要業(yè)務,適用行業(yè)近百種。服務企業(yè)客戶超過千家,涉及國內多個省份客戶。擁有多年網站建設開發(fā)經驗。為企業(yè)提供專業(yè)的網站建設、創(chuàng)意設計、宣傳推廣等服務。 通過專業(yè)的設計、獨特的風格,為不同客戶提供各種風格的特色服務。

當在canvas中繪制一張外鏈圖片時,我們會遇到一個跨域問題。

示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>crossorigin</title>
</head>
<body>
    <canvas width="600" height="300" id="canvas"></canvas>
    <img id="image" alt="">
    <script>
        var canvas = document.getElementById('canvas');
        var ctx = canvas.getContext('2d');
        var image = new Image();
        image.onload = function() {
            ctx.drawImage(image, 0, 0);
            document.getElementById('image').src = canvas.toDataURL('image/png');
        };
        image.src = 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3497300994,2503543630&fm=27&gp=0.jpg';
    </script>
</body>

當在瀏覽器中打開這個頁面時,你會發(fā)現(xiàn)這個問題:

Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

這是受限于 CORS 策略,會存在跨域問題,雖然可以使用圖像,但是繪制到畫布上會污染畫布,一旦一個畫布被污染,就無法提取畫布的數(shù)據(jù),比如無法使用使用畫布toBlob(),toDataURL(),或getImageData()方法;當使用這些方法的時候 會拋出上面的安全錯誤

這是一個苦惱的問題,但幸運的是img新增了crossorigin屬性,這個屬性決定了圖片獲取過程中是否開啟CORS功能:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>crossorigin</title>
</head>
<body>
    <canvas width="600" height="300" id="canvas"></canvas>
    <img id="image" alt="">
    <script>
        var canvas = document.getElementById('canvas');
        var ctx = canvas.getContext('2d');
        var image = new Image();
        image.setAttribute('crossorigin', 'anonymous');
        image.onload = function() {
            ctx.drawImage(image, 0, 0);
            document.getElementById('image').src = canvas.toDataURL('image/png');
        };
        image.src = 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3497300994,2503543630&fm=27&gp=0.jpg';
    </script>
</body>

對比上面兩段JS代碼,你會發(fā)現(xiàn)多了這一行:

image.setAttribute('crossorigin', 'anonymous');

就是這么簡單,完美的解決了!

感謝你能夠認真閱讀完這篇文章,希望小編分享怎么解決canvas繪圖時遇到的跨域問題內容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學習!

本文題目:怎么解決canvas繪圖時遇到的跨域問題
標題來源:http://www.aaarwkj.com/article48/jpdohp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、外貿建站、響應式網站、外貿網站建設、定制網站、服務器托管

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設
五月婷婷丁香噜噜噜噜| 日本加勒比系列在线播放| 国产精品五月婷婷六月丁香| 中文字幕日韩乱码一级在线| 久久国产精品一区av瑜伽| 精品亚洲天堂一区二区三区| 天堂久久天堂av色综合| 亚洲精品一区二区三区毛片| 亚洲国产精品青青草| 蜜桃视频中文字幕二区三区| av小说亚洲激情乱| 国产精品_国产精品_k频道| 日本精品人妻一区二区三区蜜桃| 久久免费欧美日韩亚洲| 人妻有码一区二区三区| 亚洲欧美日韩国产在线一区| 精品伊人久久大香线蕉| 日韩精品一区二区三区人妻视频| 农村女人91熟女熟妇| 日韩av大片一区二区三区| 91午夜福利国产在线观看| 韩国黄色三级一区二区| 在线看日本十八禁网站| 美女福利视频一区二区| 欧美日韩亚洲精品综合网| 亚洲日本熟妇在线视频| 青青草国产成人自拍视频在线观看 | 久久亚洲一区二区麻豆偷| 夫妻性生活免费看视频| 日韩亚洲欧美不卡在线| av在线男人社区日韩| 两性色午夜视频免费网站| 亚洲av无毛在线观看| 亚洲成av人片乱码午夜| 欧美日韩成人精品一区二区| 精品国产三级a在线观看网站| 日韩爱爱特级视频中文字幕| 亚洲日本日本午夜精品| 国产高清毛片区1区二区三区| 亚洲美女国产精选999| 亚洲一区精品二人人爽久久|