博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html5——canvas画布
阅读量:6955 次
发布时间:2019-06-27

本文共 1666 字,大约阅读时间需要 5 分钟。

一、基本介绍

1,canvas是画布,可以描画线条,图片等,现代的浏览器大部分都支持。

canvas的width,height默认为300*150,要指定画布大小,不能用css样式的widh,height。只能在html标签中指定,或是用js对canvas对象设置。

2,canvas的Path描画

            
View Code

            
View Code

 

3,文字描画

1)空心文字

Your browser does not support the HTML5 canvas tag.
View Code

4,填充

1)直接填充矩形

var c=document.getElementById("myCanvas");var ctx=c.getContext("2d");ctx.fillStyle="red";ctx.fillRect(0,0,300,150);ctx.clearRect(20,20,100,50);

2)填充闭合的path

// 描画当前路径ctx.stroke();// 用绿色填充闭合路径ctx.fillStyle="#339900";ctx.fill();

 

 5,旋转

图片旋转一定要等图片加载完成才可以。

//旋转图片                var backImg2 = new Image();                backImg2.src="road2.jpg";//                backImg2.οnlοad=function(){                   //这里是异步调用,里面的坐标最好用绝对坐标,不要translate                   // 不然里面和外面的代码会互相干扰,下面渐变色的颜色,暂时注释                   ctx.save();                   ctx.translate(0,0);                                      ctx.rotate(0.57);                           ctx.drawImage(backImg2, 0,0,100,100);                   ctx.restore();                };

6,支持对像素的操作

canvas上的每个像素都可以取得和设定值,这提供了极大的灵活性。

主要通过getImageData,putImageData,createImageData来完成。

function copy(){var imgData=ctx.getImageData(10,10,50,50);ctx.putImageData(imgData,10,70);}
View Code
var c=document.getElementById("myCanvas");var ctx=c.getContext("2d");var imgData=ctx.createImageData(100,100);for (var i=0;i
View Code

二、一个综合的例子

            
View Code

 

转载于:https://www.cnblogs.com/xiashengwang/p/8682510.html

你可能感兴趣的文章
SQL 删除数据-select在当前表字段作为条件
查看>>
nike roshe run homme pas cher
查看>>
webrtc研究资源摘录
查看>>
.Net Micro Framework移植基础(包编译通过)
查看>>
对象和实例的区别
查看>>
关于MARATHON和容器的端口映射
查看>>
php通过header发送自定义数据
查看>>
云时代必备 CDN 技能包
查看>>
仿大众点评下拉菜单实现
查看>>
数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
查看>>
hadoop 开发环境设置以及可运行jar包生成
查看>>
MySQL 备份恢复
查看>>
intellij idea修改背景色以及快捷键大全
查看>>
Can't connect to X11 window server using 'localhos
查看>>
redis 介绍与安装
查看>>
letdown
查看>>
Action以外的类中来获得Spring所管理的Service对象
查看>>
Linux系统下手把手完成无人值守安装服务
查看>>
pyfa的汉化
查看>>
使用@Transactional(SUPPORTS)和不加@Transactional 有什么区别?
查看>>