设为首页 加入收藏

TOP

canvas一周一练 -- canvas基础学习(三)
2017-10-10 16:46:47 】 浏览:10082
Tags:canvas 一周一 基础 学习
是另一个<canvas>元素

window.onload = function(){
        var drawing = document.getElementById('drawing');
        if(drawing.getContext) {
            //阴影
            var context = drawing.getContext('2d');
            context.shadowColor = 'rgba(0, 0, 0, 0.5)';//阴影颜色,默认黑色
            context.shadowOffsetX = 5;//x轴方向的阴影偏移量,默认0
            context.shadowOffsetY = 5;//y轴方向的阴影偏移量,默认0
            context.shadowBlur = 4;//模糊的像素数,默认0

            context.fillStyle = 'rgba(0, 0, 255, 0.5)';
            context.fillRect(10, 10, 50, 50);
            context.fillStyle = 'pink';
            context.fillRect(30, 30, 50, 50);

            //渐变
            var gradient = context.createLinearGradient(100, 10, 130, 130);//创建线性渐变,返回CanvasGradient对象的实例。参数:起点x坐标、y坐标、终点x坐标、y坐标
            gradient.addColorStop(0, 'white');//指定色标,参数:色标位置(0到1之间的数字,0表示开始的颜色,1为结束的颜色)、css颜色值
            gradient.addColorStop(1, 'black');

            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(0, 'red');
            gradientNew.addColorStop(1, 'green');
            context.fillStyle = gradientNew;
            context.fillRect(180, 10, 50, 50);

            var gradientRound = context.createRadialGradient(275, 35, 10, 275, 35, 30);//径向渐变,参数:起点圆的圆心、半径,终点圆的圆心、半径
            gradientRound.addColorStop(0, 'pink');
            gradientRound.addColorStop(1, 'blue');
            context.fillStyle = gradientRound;
            context.fillRect(250, 10, 50, 50);

            //模式,即重复的图像,可以用来填充或描边图形
            var image = document.images[0],
                pattern = context.createPattern(image, 'repeat-x');//创建新模式,参数:图像元素、是否重复(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 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇js实现数组去重方法总结 下一篇CSS深入理解学习笔记之border

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目