抖音资讯

douyinzx

canvas绘制图片的方法(canvas动态绘制轨迹)

iseeyu2年前 (2024-05-08)抖音资讯125

今天我们来说下Canvas一个新的api,context.drawImage();这个Api有三种调用方式。下面我分别来介绍

 

在画布上定位图像:(3个参数)

context.drawImage( img , x , y );

三个参数也很容易理解

1、img:待绘制的图片对象,这里可以是img标签,也可以是Image对象,两者实质都一样,都表示图片对象。

2、x, y 分别对应是的图片左上角在画布的坐标

举例:

var img = new Image();

img.onload = function(){

	 context.drawImage(this,10,10);

}

img.src ='./img/toutiao.jpg';

效果如下:

 

这里需要我们注意的是我们在绘制图片的时候,一定要保证图片加载完成,所以我们一般在图片的onload事件里面去绘制图片。

 

在画布上定位图像,并规定图像的宽度和高度:(5个参数)

context.drawImage( img , x , y ,width ,height);

还是绘制上面的图片,我们在后面添加width,height看效果:

context.drawImage(this,10,10,100,100);

 

我们强制把图片绘制成宽为100,高为100的图像了,从图上我们可以看到,图片变形了,除非我们把宽高比和图片本身的宽高比一致,图片方可正常显示。

 

剪切图像,并在画布上定位被剪切的部分:(9个参数)

context.drawImage( img , sx , sy , swidth , sheight , x , y , width , height);

前面两种方式的绘制是将整张图片全部绘制到画布上,那么第三种方式的调用则是可以在图片上截取一部分然后贴到画布上。简单可以理解成我们在图片上扣了一块下来,然后贴到画布上,想像一下这个过程,这9个参数就不难理解了。

img:图片对象

sx:我们要在图片上扣的起始位置的X坐标

sy:我们要在图片上扣的起始位置的Y坐标

swidth,sheight:我们要扣的图片的宽高

x,y:扣完以后,我们要开始放在画布上的x,y的位置。

width,height:我们要创建多大的画布区域存放我们扣过来的图片

这个方法的应用最多就是在canvas游戏中的使用。我们有一个序列帧图片,我们可以通过取出图片不同的部分从而形成动画,举例:

 

我们可以看这张图,就是一个典型的序列帧图片,接下来我们让其动起来。

先看效果:

 

var img = new Image();
			img.onload = function(){
				var singleW = this.width / 11; //因为图片有11帧
				var singleH = this.height;
				var i = 1;
				setInterval(()=>{
					i%=11;

					context.clearRect(0,0,singleW*2,singleH*2);
				context.drawImage(this , singleW * i , 0 , singleW , singleH,10,10,singleW,singleH);
					i+=1;
				},60)
			}
img.src ='./img/person.png';

原理就是我们把图片的每一帧都单独扣出来,然后放在画布上,通过定时器就可以实现动画了,很多游戏框架中的精灵动画就是这样来的。

总结

canvas绘制图片需要注意要在图片加载完成后再去绘制,否则绘制出来的结果依然是空白。

context.drawImage方法的三种调用方式,其中第三种调用最为重要,在实际的项目开发过程中应用也是最多,最灵活。

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/42656.html

相关文章

直播代运营合同避坑:报价、KPI、违约金一次说清

直播代运营合同避坑:报价、KPI、违约金一次说清

去年西安一家女装店老板拿着合同来找我看,就一页纸,上面写着“保证月销30万”。签的时候高高兴兴,三个月后只卖了8万,代运营公司一句“市场环境不好”就撒手不管了。老板想退钱,翻出合同才发现,什么叫销售额、含不含退款、考核多久、数据以谁为准,一个字都没写。这种坑我这两年见了不止十回。 直播代运营合同看...

抖音千川投放怎么投?2026新手起量避坑指南

抖音千川投放怎么投?2026新手起量避坑指南

西安一家做本地餐饮的老张,去年底听人说抖音能拉客,先充了3000块投DOU+。一个月下来,视频播放量是上去了,团购券没卖出几张。后来他才搞清楚,DOU+是给内容加热用的,真正能把团购券卖出去的工具叫巨量千川。2026年,在抖音上做生意的商家基本绕不开这两个东西:DOU+管内容热度,千川管成交转化。...

抖音短视频带货怎么做?2026年挂车出单实操指南

抖音短视频带货怎么做?2026年挂车出单实操指南

直播带货要开播、要人设、要话术,很多西安商家试了两次就放弃了。其实还有一条更轻的路:短视频带货。拍一条视频挂上商品链接,用户刷到直接下单,不用开播,不用连麦,一个人一部手机就能跑。我见过高新一家卖手工辣条的档口,老板就拍后厨炒料,一条视频爆了,挂车链接三天卖了四千多单。我自己也帮几个西安客户跑过这...

抖音矩阵号怎么做?2026年企业多账号布局实操

抖音矩阵号怎么做?2026年企业多账号布局实操

有个西安做门窗的老板跟我抱怨,说一个号发了大半年,播放量卡在一两千上不去,问我是不是号被限流了。我让他去搜搜本地同行,人家三个号轮着发,客户搜「西安封阳台」,翻两屏全是那一家。这不是玄学,就是矩阵。说白了,矩阵不是一个号发十遍,也不是开十个号复制粘贴,而是按客户会搜什么、信什么,把账号分工排好。尤...

抖音蹭热点总翻车?2026年商家追热点的正确姿势

抖音蹭热点总翻车?2026年商家追热点的正确姿势

上周有个做建材的老板问我:热搜上那个话题全网都在拍,我是不是也该跟一条?我反问他,拍完这条视频,客户凭什么找你买瓷砖?他愣了半天没答上来。这就是大多数商家蹭热点的真实状态——看见热点就冲,拍完发现除了播放量,什么都没留下。热点不是不能蹭,是大多数人都蹭错了。我盘过自己服务的客户数据:蹭热点视频的平...

企业抖音蓝V认证2026流程:材料准备与审核避坑

企业抖音蓝V认证2026流程:材料准备与审核避坑

企业号蓝V认证,现在几乎成了西安本地商家做抖音的起手式。不管是餐饮、装修、教育还是批发档口,想挂电话、想开团购、想投DOU+,基本都绕不开这一步。这篇文章把2026年最新的蓝V认证流程、要准备的材料、审核容易挂的地方一次讲清楚。蓝V认证到底有什么用?值不值600块蓝V说白了就是抖音给企业主体做的实...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片