canvas繪制圖片及幀動(dòng)畫

1.繪制圖片

1 基本繪制圖片的方式

context.drawImage(img,x,y);
x,y 繪制圖片左上角的坐標(biāo),在畫布上繪制的坐標(biāo)點(diǎn) img是繪制圖片的dom對象。

2 在畫布上繪制圖像,并規(guī)定圖像的寬度和高度

context.drawImage(img,x,y,width,height);
width 繪制圖片的寬度, height:繪制圖片的高度

如果指定寬高,最好成比例,不然圖片會(huì)被拉伸

等比公式: toH = Height * toW / Width;
設(shè)置的高度 = 原高度 * 設(shè)置的寬度 / 原寬度;

3 圖片裁剪,并在畫布上定位被剪切的部分

context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);
sx,sy 裁剪的左上角坐標(biāo),
swidth:裁剪圖片的高度。
sheight:裁剪的高度
其他同上

eg:繪制圖片
<script>
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

var image = new Image();
image.src = "images/img_02.jpg";
image.addEventListener('load',function(){
    ctx.drawImage(image, 50,50,200,200,180,180,200,200);
})
</script>

2.繪制幀動(dòng)畫

創(chuàng)建image對象
添加src
需要定時(shí)器,(ctx.drawImage)并輪播圖片

  eg:
    //1.獲取上下文
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

var picSize = 256;
var duration = 200;
var index = 0;
var dir = 0;        //默認(rèn)為向左運(yùn)動(dòng)
//2.獲取圖片對象
var image = new Image();
image.src="images/girl.png";
image.addEventListener('load',function(){
    setInterval(function(){
        ctx.clearRect(0,0,canvas.width,canvas.height);
        ctx.drawImage(image,index * picSize,dir * picSize,picSize,picSize,200,100,picSize,picSize);
        index++;
        index %= 8;
    },duration);
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 一:canvas簡介 1.1什么是canvas? ①:canvas是HTML5提供的一種新標(biāo)簽 ②:HTML5 ...
    GreenHand1閱讀 4,724評論 2 32
  • 一、canvas簡介 1.1 什么是canvas?(了解) 是HTML5提供的一種新標(biāo)簽 Canvas是一個(gè)矩形區(qū)...
    Looog閱讀 3,973評論 3 40
  • 一、canvas簡介 1.1 什么是canvas?(了解) 是HTML5提供的一種新標(biāo)簽 Canvas是一個(gè)矩形區(qū)...
    J_L_L閱讀 1,560評論 0 4
  • 許多UIView的子類,如一個(gè)UIButton或一個(gè)UILabel,它們知道怎么繪制自己。遲早,你也將想要做一些自...
    shenzhenboy閱讀 1,692評論 2 8
  • 天空里是不是有個(gè)城 充滿著美好的希望 正如很多人的向往 沒有悲歡離合 沒有喜怒哀樂 , 我想有雙翅膀 飛到天空的深...
    草芥人閱讀 488評論 0 2