渐变HTML5 Canvas实现图片缩放、翻转、颜色渐变代码示例

渐变图片  时间:2021-04-21  阅读:()

★精品文档★

HTML5 Canvas实现图片缩放、翻转、颜色

渐变代码示例

这篇文章主要介绍了 HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例,充分利用到了坐标的操作,说明都写在代码注释里了很简明,需要的朋友可以参考下

翻转、移动、平移、放大、缩小

XML/HTML Codevar canvas = document.getElementById(‘canvas’);  if (canvas.getContext) {  

   var context = canvas.getContext(‘2d’);  

   //放大与缩小  

  context.beginPath();  

    context.strokeStyle = “#000000”;  

    context.strokeRect(10,10,150,100);  

   //放大3倍  

  context.scale(3,3);  

  context.beginPath();  

    context.strokeStyle = ‘#cccccc’ ;

1/9

★精品文档★

  

    context.strokeRect(10,10,150,100)  

   //缩小  

  context.scale(0.5,0.5);  

  context.beginPath();  

    context.strokeStyle = ‘#cccccc’ ;  

    context.strokeRect(10,10,150,100)  

   //翻转  

  var img=new Image();  

   img.src=‘ images/1 .jpg’ ;  

   img.onload=function(){  

    context.drawImage(img,10,10);      

        context.scale(1 , -1);  

    context.drawImage(img,0, -500);  

   }  

   //平移  

2/9

★精品文档★

  context.beginPath();  

    context.strokeStyle = ‘#000000’ ;  

    context.strokeRect(10,101 ,150,100);  

    // x移动 50  y移动 100  

  context.translate(50,100);  

  context.beginPath();  

    context.strokeStyle = ‘#cccccc’ ;  

    context.strokeRect(10,10,150,100);  

   //旋转  

  context.beginPath();  

    context.strokeStyle = ‘#000000’ ;  

    context.strokeRect(200,50,100,50);  

    //默认旋转是根据0,0 中心使用translate可以按照自己的设置的中心旋转  

  context.translate(250,75);  

3/9

★精品文档★

    context.rotate(45 * Math.PI /180);  

    context.translate(-250, -75);  

  context.beginPath();  

    context.strokeStyle = ‘#cccccc’ ;  

    context.strokeRect(200,50,100,50);  

   // transform矩阵  

  context.beginPath();  

    context.strokeStyle = ‘#000000’ ;  

    context.strokeRect(10,10,150,100);  

    context.transform(3,0,0,3,0,0);  

  context.beginPath();  

    context.strokeStyle = ‘#cccccc’ ;  

    context.strokeRect(10,10,150,100);  

4/9

★精品文档★

} 

渐变、 图像组合效果、颜色翻转

XML/HTML Codevar canvas = document.getElementById(‘canvas’);  if (canvas.getContext) {  

   var context = canvas.getContext(‘2d’);  

   //线性绘制渐变  

    var grd =context.createLinearGrad ient(0,0,200,100);  

   // postion必须是0.1-1 .0之间的竖直表示渐变中颜色的地点相对地位 color表示颜色  

    grd.addColorStop(0.1 , “#00ff00”);  

    grd.addColorStop(0.8, “#ff0000”);  

  context.fi l lStyle=grd;  

    context.fi l lRect(0,0, 200,100);  

   //径向渐变  

5/9

★精品文档★

    var grd =context.createRadialGradient(100,100,10,100,100,50);  

    grd.addColorStop(0.1 , “#00ff00”);  

    grd.addColorStop(0.8, ‘#ff0000’);  

  context.fi l lStyle=grd;  

    context.fi l lRect(0,0,200,200);  

   //图像组合效果  

     context.fi l lStyle = ‘#00ff00’ ;  

     context.fi l lRect(10,10,50,50);  

   //新绘图  

    //context.globalCompositeOperation  =“source-over”;  

     //只绘制新内容删除其他所有内容  

   

6/9

★精品文档★

 context.globalCompositeOperation = ‘copy’ ;  

     //图形重叠的地方其颜色值相减后决定  

    context.globalCompositeOperation = ‘darker’ ;  

     //画布上已经有的内容只会载和其他图形重叠的地方保留  

    context.globalCompositeOperation =‘destination-atop’ ;  

     // 参 考http://www.w3school .com.cn/htmldom/prop_canvasrenderingcontext2d_globalcompositeoperation.asp  

     context.beginPath();  

     context.fi l lStyle = ‘#ff0000’ ;  

     context.arc(50,50,30,0, 2 *Math.PI);  

   context.fi l l();  

7/9

★精品文档★

   //颜色翻转  

     var img = new Image();  

      

      img.src = ‘ images/1 .jpg’ ;  

      img.onload =function(){  

        context.drawImage(img,0,0, 1 , 1);  

         var imgData =context.getImageData(0,0, 1 ,1);  

         var pixels =imgData.data;  

        console. log(pixels);  

     for(var i=0, n =pixels. length; i< n; i+=4) {  

            pixels[i]=255-pixels[i];  

            pixels[i+1]=255-pixels[i+1];  

8/9

★精品文档★

            pixels[i+2]=255-pixels[i+2];  

     }  

        context.putImageData(imgData, 250, 0);  

   }  

} 

9/9

hosthatch:14个数据中心15美元/年

hosthatch在做美国独立日促销,可能你会说这操作是不是晚了一个月?对,为了准备资源等,他们拖延到现在才有空,这次是针对自己全球14个数据中心的VPS。提前示警:各个数据中心的网络没有一个是针对中国直连的,都会绕道而且ping值比较高,想买的考虑清楚再说!官方网站:https://hosthatch.com所有VPS都基于KVM虚拟,支持PayPal在内的多种付款方式!芝加哥(大硬盘)VPS5...

3G流量免费高防CDN 50-200G防御

简介酷盾安全怎么样?酷盾安全,隶属于云南酷番云计算有限公司,主要提供高防CDN服务,高防服务器等,分为中国境内CDN,和境外CDN和二个产品,均支持SSL。目前CDN处于内测阶段,目前是免费的,套餐包0.01一个。3G流量(高防CDN)用完了继续续费或者购买升级包即可。有兴趣的可以看看,需要实名的。官方网站: :点击进入官网云南酷番云计算有限公司优惠方案流量3G,用完了不够再次购买或者升级套餐流量...

2021年国内/国外便宜VPS主机/云服务器商家推荐整理

2021年各大云服务商竞争尤为激烈,因为云服务商家的竞争我们可以选择更加便宜的VPS或云服务器,这样成本更低,选择空间更大。但是,如果我们是建站用途或者是稳定项目的,不要太过于追求便宜VPS或便宜云服务器,更需要追求稳定和服务。不同的商家有不同的特点,而且任何商家和线路不可能一直稳定,我们需要做的就是定期观察和数据定期备份。下面,请跟云服务器网(yuntue.com)小编来看一下2021年国内/国...

渐变图片为你推荐
投资者适当性客户端系统eaccelerator开启eAccelerator内存优化就各种毛病,DZ到底用哪个内存优化比较好。。。css3圆角怎样用css实现圆角矩形?photoshop技术ps是一种什么技术??????iexplore.exe应用程序错误iexplore.exe应用程序错误css下拉菜单如何使用HTML和CSS制作下拉菜单ipad无法加入网络为什么ipad无法加入网络?fastreport2.5罗斯2.5 现在能卖多少啊!?!!!routeaddroute add增加静态路由altools.u32keil中字符类型u32什么意思
in域名注册 广东服务器租用 个人域名备案 域名交易网 oneasiahost Vultr 150邮箱 警告本网站美国保护 创梦 php空间购买 河南移动网 umax120 国外免费asp空间 免费cdn 上海电信测速网站 atom处理器 服务器托管价格 双十二促销 第八届中美互联网论坛 nic 更多