【bug解決】使用canvas繪制圖片時無效


W3C上介紹的可以用canvas的drawImage方法繪制圖片:

相應的HTML代碼如下:

<html>
<head>
</head>
<body>
  <canvas></canvas>
  <img src="圖片地址" id="tulip"></img>
</body>
</html>

但是這樣子按照上面js代碼操作之后會發現,圖片並沒有繪制在canvas畫布上,但是我們在var img = document.getElementById('tulip')這句代碼之后console.log(img)卻發現img是獲取到了的,那為什么繪制不出來呢?

經過一番測試之后,發現如果將代碼寫在window.onload事件中就能繪制成功,這說明,在我們使用drawImage方法的時候,獲取的img元素並沒有加載繪制完成。

這樣我們就知道了,必須要在圖片資源加載完畢之后才能夠進行canvas的圖片繪制,主要方法可以有以下兩種:

// 直接將頁面中的img繪制在canvas中

let canvas = document.getElementById('canvas'); let ctx = canvas.getContext('2d'); let img = document.getElementsByTagName('img')[0]; img.onload = function() { ctx.drawImage(img, 10, 300, 200, 260); }
// 動態創建img標簽

let img = new Image(); img.src = './image/1.jpg'; // 圖片地址 img.onload = function () { ctx.drawImage(img, 0, 0, 300, 400); };

總之,不論是哪種方法,都要在img.onload事件中進行canvas圖片繪制。


免責聲明!

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



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