使用HTML5 Canvas为图片填充颜色和纹理的教程

2020-04-24 19:51:49易采站长站整理

  
        //添加颜色断点   
        grd.addColorStop(0,"olive");   
        grd.addColorStop(0.25,"maroon");   
        grd.addColorStop(0.5,"aqua");   
        grd.addColorStop(0.75,"fuchsia");   
        grd.addColorStop(0.25,"teal");   
  
        //应用渐变   
        context.fillStyle = grd;   
        context.strokeStyle = grd;   
  
        context.strokeRect(200,50,300,50);   
        context.strokeRect(200,100,150,50);   
        context.strokeRect(200,150,450,50);   
  
        context.fillRect(200,300,300,50);   
        context.fillRect(200,350,150,50);   
        context.fillRect(200,400,450,50);   
  
        context.fillRect(0,550,800,25);   
  
    }   
</script>   
</body>   
</html>  

运行结果:
2016321113029539.jpg (850×500)

这两个页面都是水平渐变,但是要清楚线性渐变不一定是水平的,方向可以是任意的,通过渐变线的端点来设置方向。

径向渐变
同样是三步走战略,只不过是第一步的所用方法变了。
添加渐变圆:

JavaScript Code复制内容到剪贴板

var grd = context.createRadialGradient(x0,y0,r0,x1,y1,r1);  

为渐变线添加关键色(类似于颜色断点):

JavaScript Code复制内容到剪贴板

grd.addColorStop(stop,color);  

应用渐变:

JavaScript Code复制内容到剪贴板

context.fillStyle = grd;   
context.strokeStyle = grd;  

线性渐变是基于两个端点定义的,但是径向渐变是基于两个圆定义的。
我们把示例7-2改写一下。

JavaScript Code复制内容到剪贴板

<!DOCTYPE html>   
<html lang="zh">