iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 10
0
自我挑戰組

學習 canvas 日記系列 第 10

第 10 天 插入圖片

  • 分享至 

  • xImage
  •  

在 canvas 插入小圖時
要先建立一個物件是放圖片專用的
再用 drawImage() 把圖畫上去

var cvs = document.getElementById("cvs");
var ctx = cvs.getContext('2d');

var imgObj = new Image();
imgObj.src = "test.jpg";
ctx.drawImage(imgObj, 0, 0);

為什麼會說小圖
因為在等待圖片下載時而程式還是會繼續向下執行
所以在圖片還沒下載完成前
程式就已經跑完的話圖片就不會出現了

要避免這個情況發生
就要先用onload把畫在canvas的動作包起來
讓圖片下載完成後才把圖畫上去

imgObj.onload = function(){
    ctx.drawImage(imgObj, 0, 0);
}

drawImage(imgObj, x, y, width, height)的參數中
width, height 可省略,預設是保持圖片原始大小
https://ithelp.ithome.com.tw/upload/images/20181023/20107496ma3QtFzvPB.jpg

還可以把原本是 350x350 的圖設定 350x150

ctx.drawImage(imgObj, 0, 0, 350, 150);

https://ithelp.ithome.com.tw/upload/images/20181023/20107496mxnxeCOJ4d.jpg
圖就會被壓扁了


上一篇
第 9 天 抓取 canvas 標籤的方法
下一篇
第 11 天 負片效果
系列文
學習 canvas 日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言