HTML5技术

canvas一周一练 -- canvas基础学习 - 张不丢(3)

字号+ 作者:H5之家 来源:H5之家 2017-07-15 12:00 我要评论( )

window.onload = function(){ ); if (drawing.getContext) { context = drawing.getContext( ); var image = document.images[ 0 ]; // 参数依次表示为:图像元素、源图像x坐标、y坐标、目标的宽度、高度 context.d

window.onload = function(){ ); if(drawing.getContext) { context = drawing.getContext(); var image = document.images[0]; //参数依次表示为:图像元素、源图像x坐标、y坐标、目标的宽度、高度 context.drawImage(image, 0, 0, 150, 250); //参数依次表示为:图像元素、源图像x坐标、y坐标、源图像宽度、高度、目标图像x坐标、y坐标、目标图像宽度、高度 context.drawImage(image, 100, 300, 500, 600, 0, 0, 70, 80); } };

  • 阴影、渐变、模式
  •   

       模式与渐变一样,都是从画布原点(0,0)开始的,将填充样式设置为模式对象,只表示在某个特定区域内显示重复的图像,而不是从某个位置开始绘制重复的图像。

       createPattern()第一个参数也可以是<video>元素,或者是另一个<canvas>元素

    window.onload = function(){ ); if(drawing.getContext) { context = drawing.getContext(); context.shadowColor = ;//阴影颜色,默认黑色 context.shadowOffsetX = 5;//x轴方向的阴影偏移量,默认0 context.shadowOffsetY = 5;//y轴方向的阴影偏移量,默认0 context.shadowBlur = 4;//模糊的像素数,默认0 context.fillStyle = ; context.fillRect(10, 10, 50, 50); context.fillStyle = ; context.fillRect(30, 30, 50, 50); gradient = context.createLinearGradient(100, 10, 130, 130);//创建线性渐变,返回CanvasGradient对象的实例。参数:起点x坐标、y坐标、终点x坐标、y坐标 gradient.addColorStop();//指定色标,参数:色标位置(0到1之间的数字,0表示开始的颜色,1为结束的颜色)、css颜色值 gradient.addColorStop(); context.fillStyle = gradient; context.fillRect(100, 10, 50, 50); var createLinearGradient = function(context, x, y, width, height) { return context.createLinearGradient(x, y, x+width, y+height); }; var gradientNew = createLinearGradient(context, 180, 10, 50, 50); gradientNew.addColorStop(); gradientNew.addColorStop(); context.fillStyle = gradientNew; context.fillRect(180, 10, 50, 50); var gradientRound = context.createRadialGradient(275, 35, 10, 275, 35, 30);//径向渐变,参数:起点圆的圆心、半径,终点圆的圆心、半径 gradientRound.addColorStop(); gradientRound.addColorStop(); context.fillStyle = gradientRound; context.fillRect(250, 10, 50, 50); image = document.images[0], pattern = context.createPattern(image, );//创建新模式,参数:图像元素、是否重复(repeat、repeat-x、repeat-y、no-repeat) context.fillStyle = pattern; context.fillRect(350, 10, 350, 350); } }

  • 使用图像数据
  •   getImageData()可取得原始图像数据,参数:要取得数据的画面区域的x坐标、y坐标、宽度、高度。返回的对象是ImageData的实例,该对象有3个属性:width、height和data。其中data为数组,保存着图像中

    每一个像素的数据,每一个像素用4个元素来表示,分别表示红、绿、蓝和透明度值。因此,第一个像素的数据保存在数组的第0到第3个元素中。

      注意:只有在画布“干净”的情况下(即图像并非来自其他域),才可以取得图像数据。

  • 合成
  •   globalAlpha:介于0和1之间的值(包括0和1),用于指定透明度,默认为0。

      globalComositionOperation:表示后绘制的图形怎样与先绘制的图形结合。

      

      

    3、WebGL

      WebGL是针对canvas的3D上下文,并不是由W3C制定的标准。

     

    本文持续更新中~

     

     

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 【干货】移动端基础知识技巧总结 - 丿Kiss丶小波

      【干货】移动端基础知识技巧总结 - 丿Kiss丶小波

      2017-07-12 18:00

    • canvas学习总结五:线段的端点与连接点 - beevesnoodles

      canvas学习总结五:线段的端点与连接点 - beevesnoodles

      2017-07-05 09:00

    • HTML5 基础内容(元素/属性/格式化) 001 - 挥舞着键盘征服世界

      HTML5 基础内容(元素/属性/格式化) 001 - 挥舞着键盘征服世界

      2017-07-03 17:03

    • Vue.js 基础指令实例讲解(各种数据绑定、表单渲染大总结)——新手入门、高手进阶 - Mr.聂

      Vue.js 基础指令实例讲解(各种数据绑定、表单渲染大总结)——新手

      2017-07-03 11:00

    网友点评
    p