1.线性径变:ctx.createLinearGradient();

  1. var grd=ctx.createLinearGradient(0,0,170,0);
  2. grd.addColorStop(0,'black');
  3. grd.addColorStop(.5,'red');
  4. grd.addColorStop(1,'white');
  5. ctx.fillStyle=grd;
  6. ctx.fillRect(100,100,500,500);

2.阴影:

  1. <script>
  2. (function(){
  3. var canvas = document.querySelector( '#cavsElem' );
  4. var ctx = canvas.getContext( '2d' );
  5. canvas.width = 600;
  6. canvas.height = 600;
  7. canvas.style.border = "1px solid #000";
  8. ctx.fillStyle='rgba(255,0,0,.9)';
  9. ctx.shadowColor='blue';
  10. ctx.shaodwBlur='10';//shadowBlur 属性设置或返回阴影的模糊级数
  11. ctx.shadowOffsetX=10;
  12. // shadowOffsetX 属性设置或返回形状与阴影的水平距离。
  13. // shadowOffsetX=0 指示阴影位于形状的正下方。
  14. // shadowOffsetX=20 指示阴影位于形状 left 位置右侧的 20 像素处。
  15. ctx.shadovOffsetY=10;
  16. ctx.fillRect(100,100,100,100);
  17. }());
  18. </script>

3.径向渐变:

  1. <script>
  2. (function() {
  3. var canvas = document.querySelector('#cavsElem');
  4. var ctx = canvas.getContext('2d');
  5. canvas.width = 600;
  6. canvas.height = 600;
  7. canvas.style.border = "1px solid #000";
  8. var rlg=ctx.createRadialGradient(300,300,10,300,300,200);//渐变开始圆的x,y坐标,半径,和渐变结束时候的状态;
  9. rlg.addColorStop(0,'teal');
  10. rlg.addColorStop(.4,'navy');
  11. rlg.addColorStop(1, 'purple');
  12. ctx.fillStyle=rlg;
  13. ctx.fillRect(100,100,500,500);
  14. }());
  15. </script>

4.画布的移动,伸缩,旋转,透明度,状态的保存;

  1. <script>
  2. (function(){
  3. var canvas = document.querySelector( '#cavsElem' );
  4. var ctx = canvas.getContext( '2d' );
  5. canvas.width = 600;
  6. canvas.height = 600;
  7. canvas.style.border = "1px solid #000";
  8. // ctx1: 状态1
  9. ctx.fillStyle = 'red';
  10. ctx.fillRect(10, 10, 100, 100);
  11. //状态 只是 上下文的一些样式的设置。
  12. ctx.save(); // 把当前的上下文的状态保存起来 // 状态1
  13. // 把当前画布移动到 200,200位置
  14. ctx.translate( 200, 200); //把整个画布位移到200,200
  15. ctx.rotate(30 * Math.PI / 180 ); //把整个画布旋转30度
  16. ctx.scale(2, 2); //把整个画布放大x和y方向各2倍
  17. ctx.globalAlpha = .3;//设置透明度 // 状态2:
  18. ctx.fillStyle = 'green';
  19. ctx.strokeStyle = 'purple';
  20. ctx.moveTo(0, 0);
  21. ctx.lineTo(400, 0);
  22. ctx.moveTo(0, 0);
  23. ctx.lineTo(0, 400);
  24. ctx.stroke();
  25. ctx.fillRect(10, 10, 40, 40);
  26. ctx.restore(); // 把上一次保存的ctx状态,还原。
  27. //当前ctx:回到 状态1
  28. ctx.fillRect(400, 400, 100, 100);
  29. }());
  30. </script>

5.将canvas转成一个图片:

  1. <script>
  2. console.log('canvas.toDataURL('image/jpeg',.6);
  3. </script>

6.把canvas输出到另外一张图片上去;

  1. // 把canvas输出到一张图片上去
  2. // var img = document.getElementById('imgId');
  3. // img.src = canvas.toDataURL('image/png', .5);
  4. //把一个画布渲染到另外一个画布上。
  5. ctx2.drawImage(canvas1, 0, 0);

canvas相关api的更多相关文章

  1. html5 canvas常用api总结(二)--绘图API

    canvas可以绘制出很多奇妙的样式和美丽的效果,通过几个简单的api就可以在画布上呈现出千变万化的效果,还可以制作网页游戏,接下来就总结一下和绘图有关的API. 绘画的时候canvas相当于画布,而 ...

  2. Html5 学习系列(五)Canvas绘图API快速入门(2)

    Canvas绘图API Demos 上一篇文章中,笔者已经给大家演示了怎么快速用Canvas的API绘制一个矩形出来.接下里我会在本文中给各位介绍Canvas的其他API:绘制线条.绘制椭圆.绘制图片 ...

  3. javascript canvas全部API

    HTMLCanvasElement//canvas elem对象 属性 height//高 width//宽 方法 getContext()//获取<canvas>相关的可绘制的上下文 t ...

  4. OpenGL FrameBufferCopy相关Api比较(glCopyPixels,glReadPixels,glCopyTexImage2D,glFramebufferTexture2D)

    OpenGL FrameBufferCopy相关Api比较 glCopyPixels,glReadPixels,glCopyTexImage2D,glFramebufferTexture2D 标题所述 ...

  5. Html5 学习系列(五)Canvas绘图API快速入门(1)

    引言:Canvas绘图API快速入门 在接触HTML5的初学者包括我都在很多地方见到非常炫的一些页面,甚至好多学习HTML5的开发者都是冲着Web端的页游去的,那么HTML5那么绚丽的页面效果以及游戏 ...

  6. QQ音乐的各种相关API

    QQ音乐的各种相关API 分类: oc2014-01-29 15:34 2676人阅读 评论(2) 收藏 举报 基本上论坛里做在线音乐的都在用百度的API,进来发现百度的API不仅歌曲的质量不可以保证 ...

  7. addChildViewController相关api深入剖析

    注:本文根据个人的实践和理解写成,若有不当之处欢迎斧正和探讨! addChildViewController是一个从iOS5开始支持的api接口,相关的一系列的接口是用来处理viewcontrolle ...

  8. [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. html5 之 canvas 相关知识(一)概念及定义

    什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...

随机推荐

  1. Java获取登录用户IP地址

    /** * 获取登录用户IP地址 * * @param request * @return */ public static String getIpAddr(HttpServletRequest r ...

  2. c中的static

    static的作用 1)保持变量值:在函数体,一个被声明为静态的变量在这一函数中可以维持其值.这句话可能描述不太准确,大家看下面这个例子吧. void staticLocalVar() { stati ...

  3. 转:完成端口(Completion Port)详解

    手把手叫你玩转网络编程系列之三    完成端口(Completion Port)详解                                                           ...

  4. 使用padding代替高度实现背景图片高度按比例自适应

    本篇文章由:http://xinpure.com/use-padding-instead-of-highly-adaptive-background-image-height-proportionat ...

  5. IDEA创建maven项目jar更新缓慢问题

    转自:http://www.cnblogs.com/ae6623/p/4416256.html 国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用. 最新 ...

  6. c# 网站生成静态页面

    在一些需要经常更新页面数据的网站中,一般访问量不是很大的都直接发布的是带后台代码,每次访问都是有数据库交互的.但是一旦访问量增加了,那么这些服务器开销变成本就要考虑进来了,像一些文章,后台编辑后,文章 ...

  7. pylot 学习笔记-使用

    Console and Blocking Mode - Command Line Options: usage: run.py [options] args -a, --agents=NUM_AGEN ...

  8. tcp流协议产生的粘包问题和解决方案

    我们在前面曾经说过,发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体 ...

  9. Kruskal算法 - C语言详解

    最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树.  例如,对于如上图G4所示的连通网可以有多棵权值总 ...

  10. ZOJ 1654 Place the Robots建图思维(分块思想)+二分匹配

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=654 AC一百道水题,不如AC一道难题来的舒服. 题意:一个n*m地图 ...