canvas绘制图片及帧动画

2017-03-21  本文已影响0人  岩蔷薇

1.绘制图片

1 基本绘制图片的方式

context.drawImage(img,x,y);
x,y 绘制图片左上角的坐标,在画布上绘制的坐标点 img是绘制图片的dom对象。

2 在画布上绘制图像,并规定图像的宽度和高度

context.drawImage(img,x,y,width,height);
width 绘制图片的宽度, height:绘制图片的高度

如果指定宽高,最好成比例,不然图片会被拉伸

等比公式: toH = Height * toW / Width;
设置的高度 = 原高度 * 设置的宽度 / 原宽度;

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

context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);
sx,sy 裁剪的左上角坐标,
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.绘制帧动画

创建image对象
添加src
需要定时器,(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;        //默认为向左运动
//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);
});
上一篇下一篇

猜你喜欢

热点阅读