看到网上某些特别好看的效果,就突然想看看这个canvas;

canvas是html5中的一个标签。所以兼容的是Internet Explorer 9、Firefox、Opera、Chrome 和 Safari 这些浏览器;

1.新建一个canvas,并且用js显示一个矩形

html
<canvas id="mycanvas" width="500" height="500" style="border:1px solid red"></canvas> js
var my=document.getElementById("mycanvas");//获取到canvas的元素
var gd=my.getContext("2d");//将这个元素换成2d
gd.fillStyle="#cc0000";//填充的颜色
gd.fillRect(0,0,200,200);//矩形的位置和宽高 起始位置,结束位置,宽,高

2.矩形:

rect(0,0,100,100);//创建矩形

fillRect(0,0,100,100);//绘制被填充的矩形

strokeRect(0,0,100,100);//绘制矩形(无填充)

clearRect(0,0,100,100);//在矩形中清空

3.线条样式

lineCap=""//末端线的样式(butt默认 round圆形 square正方形)

lineJoin=""//边角的类型,两条线的交汇处

lineWidth=//线的宽度

miterLimint=//倾斜角度

closePath()创建从当前点连接到起始点的

4.颜色样式和阴影

fillStyle//颜色 渐变

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var my_gradient=ctx.createLinearGradient(0,0,0,170);
my_gradient.addColorStop(0,"black");
my_gradient.addColorStop(1,"white");
ctx.fillStyle=my_gradient;
ctx.fillRect(20,20,150,100);

srokeStyle//笔触的颜色、渐变或模式。

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d"); var gradient=ctx.createLinearGradient(0,0,170,0);
gradient.addColorStop("0","magenta");
gradient.addColorStop("0.5","blue");
gradient.addColorStop("1.0","red"); // Fill with gradient
ctx.strokeStyle=gradient;
ctx.lineWidth=5;
ctx.strokeRect(20,20,150,100);

shadowColor//阴影的颜色。

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.shadowBlur=20;
ctx.shadowColor="black";
ctx.fillStyle="red";
ctx.fillRect(20,20,100,80);

shadowOffsetX//设置或返回阴影与形状的水平距离。

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.shadowBlur=10;
ctx.shadowOffsetX=20;
ctx.shadowColor="black";
ctx.fillStyle="red";
ctx.fillRect(20,20,100,80);

shadowOffsetY//设置或返回阴影与形状的垂直距离

createLinearGradient()//在画布的内容上创建线性渐变

createRadialGradient()//在画布的内容上创建环形渐变

createPattern()//在在制定的方向上重复指定的元素

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("lamp");
var pat=ctx.createPattern(img,"repeat");
ctx.rect(0,0,150,100);
ctx.fillStyle=pat;
ctx.fill();

addColorStop()//渐变对象中指定停止的位置

var c=document.getElementById('myCanvas');
var ctx=c.getContext('2d'); var grd=ctx.createLinearGradient(0,0,170,0);
grd.addColorStop(0,"black");
grd.addColorStop(1,"white"); ctx.fillStyle=grd;
ctx.fillRect(20,20,150,100);

5.路径

fill()填充绘制的内容

stroke()绘制已定义的内容

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.moveTo(20,20);
ctx.lineTo(20,100);
ctx.lineTo(70,100);
ctx.strokeStyle="red";
ctx.stroke();

beginPath()起始一条路径或者重置当前路径

moveTo()把路径移动到画布中的指定点 不创建线条

lineTo()添加一个新点,然后创建从该点到画布中最后指定点的线条(该方法并不会创建线条)。

clip()在画布中剪裁任意形状

arc(x,y,r,起始角度,结束角度,顺时针还是逆时针)

arcTo(起始点的x坐标,起始点的y坐标,结束点的x坐标,结束点的y坐标,r)创建介于两个切线之间的弧/曲线。

6.转换

scale()

rotate()

translate()

transform()

7.图像绘制

drawImage(img,开始剪裁的x位置,开始剪裁的y位置,被剪裁的宽度,被剪裁的高度,在画布上放置的x位置,在画布上放置的y位置,要使用的图片的宽度,要使用的图片的高度)

<canvas id="mycanvas" width="700" height="500"></canvas>
<img src="img/img.png" id="img"/>
<script>
var my=document.getElementById("mycanvas");
console.log(my);
var canvas=my.getContext("2d"); var img=document.getElementById("img");
img.onload=function(){
canvas.drawImage(img,10,10,200,200,100,100,50,50);
};

8像素的操作

createImageData()创建新的空白的imagedata对象

getImageData()返回imagedata对象,该对象为画布上指定的矩形复制像素数据。

putImageData()图像数据(从指定的 ImageData 对象)放回画布上。

   
   

canvas知识点的更多相关文章

  1. canvas知识点积累

    fillRect(x,y,width,height) 填充一个矩形区域,绘制已填色的矩形,默认填充颜色为黑色.x:矩形左上横坐标,y:矩形左上纵坐标,width:矩形宽度,height:矩形高度. s ...

  2. Canvas知识点汇总

    本文主要记录Canvas基础知识汇总. 1.Canvas定义 <canvas> 元素是HTML5中的新元素,通过它可以在网页中绘制出所需的图形.<canvas>标签只是图形的容 ...

  3. HTML5 Canvas知识点学习笔记

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/huangyibin628/article/details/30108165 canvas ① 主要作 ...

  4. Canvas知识点补充

    Canvas笔记 复习 初识canvas <canvas> 是 HTML5 新增的,一个可以使用脚本(通常为 JavaScript) 在其中绘制图像的 HTML 元素.它可以用来制作照片集 ...

  5. 使用canvas及js简单生成验证码方法

    在很多时候都需要用到验证码,前端验证码需要知道Html5中的canvas知识点.验证码生成步骤是:1.生成一张画布canvas 2.生成随机数验证码  3.在画布中生成干扰线  4.把验证码文本填充到 ...

  6. 有关于canvas几个新知识点

    对于canvas的初学者来说,以下几点应该是不知道的知识点: 1.canvas有兼容IE6/7/8的脚本文件 下载地址:https://github.com/arv/explorercanvas 2. ...

  7. HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)

    看到网上很多展示html5雪花飞动的效果,确实非常引人入胜,我相信大家也跟我一样看着心动的同时,也很好奇,想研究下代码如何实现:虽然哦很多地方也能下载这些源码,不过也不知道别人制作此类动画时的思路及难 ...

  8. canvas学习笔记,实用知识点总结(上)

    本博客是本人日常学习笔记,作为重要知识点的总结记录,随笔风格可能更倾向于个人的学习习惯和方式,若对您有帮助十分荣幸,若存在问题欢迎互相学习探讨,前端小白一枚在此恭候. 一.基本使用规则 1.创建画布 ...

  9. 用Canvas,画中国国旗(Canvas基本知识点)

    .getContext("2d")=======>获取绘图接口 //2d .beginPath()========>创建绘图路径开始点 .moveTo(x,y)==== ...

随机推荐

  1. inotify +rsync进行实时同步

    1.安装rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpmyum -y install ino ...

  2. JSONP和CORS两种跨域方式的简单介绍和解决方案实例

    随着软件开发分工趋于精细,前后端开发分离成为趋势,前端同事负责前端页面的展示及页面逻辑处理,服务端同事负责业务逻辑处理同时通过API为前端提供数据也为前端提供数据的持久化能力,考虑到前后端同事开发工具 ...

  3. .net调用java写的WebServise时方法总是返回空的问题

    解决方法如下: 直接用wsdl.exe根据描述文件生成代理类来调,可避免这样的问题. 同时附上,wsdl工具在.net菜单中的配置方法,参考园友: http://www.cnblogs.com/qfb ...

  4. RHEL7 修改SSH默认端口及修改SELinux运行状态

    RHEL7安装后,默认开启SSH服务以便远程配置,但默认端口22并不安全,一般不建议使用默认端口,那就修改SSH默认端口.在sshd_config里面的修改RHEL7.0上修改和7.0以下类似,但要注 ...

  5. 百度地图API功能集锦

    1.点个数太多导致加载缓慢的解决. 2.可视化区域内加载的解决. 3.自定义信息窗口解决. 4.区域/板块/商圈等的绘制功能解决. 基本包含了用到百度地图API会使用到的大部分常规性场景.(聚合点功能 ...

  6. C++11实现生产者消费者问题

    生产者消费者问题是多线程并发中一个非常经典的问题.我在这里实现了一个基于C++11的,单生产者单消费者的版本,供大家参考. #include <windows.h> #include &l ...

  7. ThinkPHP 关于namespace的事儿

    如题,php通常是不允许函数重名的,例如a.php中有一个getName(),b.php中有一个getName(),在require_once a.php和b.php后就会报getName重复定义的错 ...

  8. (Skill)238. Product of Array Except Self

    Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...

  9. 【HOW】如何对Reporting Services表格中数据按字段排序

    Reporting Services中可以设置排序的地方非常多,有很多地方从其字面意思上好像是对表格数据的排序,但实际都不管用.在多次尝试后,得到如下的有效设置方式: 1. 鼠标右键单击要排序字段的内 ...

  10. Programming in Lua读书笔记

         Lua的长处之一就是可以通过新类型和函数来扩展其功能.动态类型检查最大限度允许多态出现,并自动简化调用内存管理的接口,因为这样不需要关心谁来分配内存谁来释放内存,也不必担心数据溢出.高级函数 ...