javascript - canvas畫圖
問題描述
寫了一個函數,第一次調用canvas的drawImage將本地的一張圖片的一部分給畫下來(能夠成功),然后將canvas畫好的這張圖調用toDataURL轉化為image對象的src屬性,然后對這張canvas畫的圖調用同樣的方法進行二次繪畫為什么不能成功?
function paint(img) {var canvas = document.createElement(’canvas’)canvas.width = 400canvas.height = 400var ctx = canvas.getContext(’2d’)ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, 400, 400)document.body.appendChild(canvas)//畫好的第一個canvas對象可以正常顯示var newImg = new Image()newImg.src = canvas.toDataURL()newImg.onload = function() { var canvas2 = document.createElement(’canvas’) canvas2.width = 200 canvas2.height = 200 var ctx2 = canvas2.getContext(’2d’) ctx2.drawImage(newImg, 0, 0, Math.abs(posX), Math.abs(posY), 0, 0, 200, 200)//這里之所以把第一次的canvas作圖加載成一張圖片,是因為不知道canvas可不可以繪制canvas document.body.appendChild(newImg)//這張圖片能正常顯示 document.body.appendChild(canvas2)//canvas元素加上了,但是繪圖不成功} }
問題解答
回答1:你是不是用的外站圖片? 如果是,需要給圖片加上 crossOrigin='Anonymous' 屬性。
html方式
<img src='http://m.4tl426be.cn/wenda/...' crossOrigin='Anonymous' />
js方式
var image = new Image();image.src = 'http://m.4tl426be.cn/wenda/...';image.crossOrigin = 'Anonymous';
你可以在線把玩一下我用你的代碼修改的可運行的版本:https://jsfiddle.net/5g9n9esk/
相關文章:
1. javascript - 關于css絕對定位在ios瀏覽器被橡皮筋遮擋的問題2. (python)關于如何做到按win+R再輸入文件文件名就可以運行?3. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處4. Python如何播放還存在StringIO中的MP3?5. javascript - vue的element-ui(餓了嗎UI) webpack打包時externals無法分離6. javascript - 請教如何獲取百度貼吧新增的兩個加密參數7. css3 - 微信前端頁面遇到的transition過渡動畫的bug8. Python爬蟲如何爬取span和span中間的內容并分別存入字典里?9. python - 能通過CAN控制一部普通的家用轎車嗎?10. html5 - 只用CSS如何實現input框的寬度隨框里輸入的內容長短自動適應?
