当前位置:主页 > 天堂2网页版 > 玩转html5canvas画图(10)

玩转html5canvas画图(10)

时间:2018-11-26

玩转html5canvas画图

本文来自织梦

玩转html5canvas画图 织梦好,好织梦

View Code

1 function draw14(id) { 2 //传统的平铺是用for循环来处理的,现在直接调用接口 3 var image = new Image(); 4 var canvas = document.getElementById(id); 5 if (canvas == null) 6 return false; 7 var context = canvas.getContext("2d"); 8 var type = ["no-repeat", "repeat-x", "repeat-y", "repeat"]; 9 var i = 0; 10 image.src = "Image/wordslogo.jpg"; 11 image.onload = function () { 12 var interval = setInterval(function () { 13 //每次转换平铺类型清空 14 context.clearRect(0, 0, 400, 300); 15 if (i >= 4) { 16 i = 0; 17 } 18 var ptrn = context.createPattern(image, type[i]); 19 context.fillStyle = ptrn; 20 context.fillRect(0, 0, 400, 300); 21 i++; 22 }, 1000); 23 }; 24 }

copyright dedecms

内容来自dedecms

玩转html5canvas画图

dedecms.com

本文来自织梦

图像裁剪:context.clip()

copyright dedecms

context.clip()只绘制封闭路径区域内的图像,不绘制路径外部图像,用的时候

织梦内容管理系统

先创建裁剪区域

dedecms.com

再绘制图像(之后绘制的图形都会采用这个裁剪区域,要取消这个裁剪区域就需要用到保存恢复状态,下面有讲) 本文来自织梦

给出圆形和星形的裁剪代码

dedecms.com

玩转html5canvas画图 织梦好,好织梦

玩转html5canvas画图 copyright dedecms

View Code

1 //图像裁剪 2 function draw15(id) { 3 var canvas = document.getElementById(id); 4 if (canvas == null) 5 return false; 6 var context = canvas.getContext("2d"); 7 context.fillStyle = "black"; 8 context.fillRect(0, 0, 400, 300); 9 image = new Image(); 10 image.onload = function () { 11 drawImg(context,image); 12 } 13 image.src = "Image/html5.jpg" 14 } 15 16 function drawImg(context, image) { 17 //圆形裁剪区 18 //createCircleClip(context) 19 //星形裁剪区 20 create5StarClip(context); 21 context.drawImage(image,0,0); 22 } 23 24 function createCircleClip(context) { 25 context.beginPath(); 26 context.arc(200, 150, 100, 0, Math.PI * 2, true); 27 context.closePath(); 28 context.clip(); 29 } 30 31 function create5StarClip(context) { 32 var n = 0; 33 var dx = 200; 34 var dy = 135; 35 var s = 150; 36 context.beginPath(); 37 var x = Math.sin(0); 38 var y = Math.cos(0); 39 var dig = Math.PI / 5 * 4; 40 for (var i = 0; i < 5; i++) { 41 var x = Math.sin(i * dig); 42 var y = Math.cos(i * dig); 43 context.lineTo(dx + x * s, dy + y * s); 44 } 45 context.closePath(); 46 context.clip(); 47 } 内容来自dedecms

织梦好,好织梦

玩转html5canvas画图

织梦好,好织梦

本文来自织梦

玩转html5canvas画图 copyright dedecms

织梦内容管理系统

像素处理:

内容来自dedecms

获取像素颜色数组: var imagedata=context.getImageData(sx,sy,sw,sh) 本文来自织梦

    sx:cavas的x轴坐标点

内容来自dedecms

    sy:canvas的y轴坐标点 内容来自dedecms

    sw:距离x的宽度

织梦内容管理系统

    sh:距离y的高度 copyright dedecms

可以利用context.getImageData返回的一个像素颜色数组,顺序是所取像素范围的从左到右,从上到下,数组的元素是(所有图形,包括图片,和绘制的图形)每个像素的rgba

内容来自dedecms

[r1,g1,b1,a1,r2,g2,b2,a2...] dedecms.com

  • 共14页:
  • 上一页
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 下一页
  • 上一篇:傲剑狂刀出招表(键盘出招表+秘籍) 下一篇:写作文必学的六大修辞手法详解