渐变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

1C2G5M轻量服务器48元/年,2C4G8M三年仅198元,COM域名首年1元起

腾讯云双十一活动已于今天正式开启了,多重优惠享不停,首购服务器低至0.4折,比如1C2G5M轻量应用服务器仅48元/年起,2C4G8M也仅70元/年起;个人及企业用户还可以一键领取3500-7000元满减券,用于支付新购、续费、升级等各项账单;企业用户还可以以首年1年的价格注册.COM域名。活动页面:https://cloud.tencent.com/act/double11我们分享的信息仍然以秒...

华纳云CN2高防1810M带宽独享,三网直cn218元/月,2M带宽;独服/高防6折购

华纳云怎么样?华纳云是香港老牌的IDC服务商,成立于2015年,主要提供中国香港/美国节点的服务器及网络安全产品、比如,香港服务器、香港云服务器、香港高防服务器、香港高防IP、美国云服务器、机柜出租以及云虚拟主机等。以极速 BGP 冗余网络、CN2 GIA 回国专线以及多年技能经验,帮助全球数十万家企业实现业务转型攀升。华纳云针对618返场活动,华纳云推出一系列热销产品活动,香港云服务器低至3折,...

腾讯云轻量应用服务器关于多个实例套餐带宽

腾讯云轻量应用服务器又要免费升级配置了,之前已经免费升级过一次了(腾讯云轻量应用服务器套餐配置升级 轻量老用户专享免费升配!),这次在上次的基础上再次升级。也许这就是良心云吧,名不虚传。腾讯云怎么样?腾讯云好不好。腾讯云轻量应用服务器 Lighthouse 是一种易于使用和管理、适合承载轻量级业务负载的云服务器,能帮助个人和企业在云端快速构建网站、博客、电商、论坛等各类应用以及开发测试环境,并提供...

渐变图片为你推荐
互联网周鸿祎计划ipad支持ipad三星iphonenetbios端口怎么关闭8909端口!其他端口就不用了x-router思科路由器有线端无法上网,而无线段却可以,用的是PPPOE拨号上网,一开始两种方法都不可以,检查宽iphonewifi苹果手机怎么wi-fi共享google图片搜索如何使用google图片搜索引擎?win7关闭135端口windows 7如何关闭139端口csshackcss常见的hack方法有哪些
英文域名 台湾服务器租用 net主机 duniu ix主机 国外空间服务商 一点优惠网 私有云存储 一元域名 最好看的qq空间 云鼎网络 gspeed 徐正曦 阿里校园 昆明蜗牛家 购买国外空间 国内空间 97rb 塔式服务器 建站行业 更多