当前位置:首页 » 《随便一记》 » 正文

Canvas-getImageData()用鼠标移动和点击来后去移动点或点击点的颜色RGBA值_taojunhust2的博客

3 人参与  2022年02月21日 08:36  分类 : 《随便一记》  评论

点击全文阅读


首先声明:这个代码案例来源于:
https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas#%E7%BC%A9%E6%94%BE%E5%92%8C%E5%8F%8D%E9%94%AF%E9%BD%BF
不过其中代码运行出现一些问题。自己做了修改后完成。

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="UTF-8">
     <title>Canvas-像素操作</title>
     </head>
     <body>
          <canvas id="canvas" width="300" height="227"></canvas>
          <canvas id="canvas2" width="300" height="200"></canvas>
          <canvas id="canvas3" width="300" height="200"></canvas>



     </body>

          <script>
               /*
               var canvas=document.getElementById("canvas");
               var ctx=canvas.getContext("2d");
               var img=new Image();// 创建一个<img>元素
               img.crossOrigin='anonymous';
               img.src='./rhino.jpg';
               img.οnlοad=function(){
                  ctx.drawImage(img,0,0);
                  img.style.display='none';  
               };
               
               canvas.addEventListener('click',function(e){
                   var x=e.offsetX;
                   var y=e.offsetY;
                   console.log(ctx.getImageData(100,150,5,5));
                   console.log(ctx.getImageData(x,y,1,1).data);
               });
               */

               var img=new Image();
               img.src='./color.jpg';
               img.crossOrigin='anonymous';//这行代码很重要;
               var canvas=document.getElementById('canvas');
               var ctx=canvas.getContext('2d');
               img.onload=function(){
                    ctx.drawImage(img,0,0);
                    img.style.display='none';
               };
               var hoveredColor=document.getElementById('canvas2');
               var selectedColor=document.getElementById('canvas3');

               function pick(event,destination){
                    var x=event.layerX;//鼠标的x,y数值;
                    var y=event.layerY;
                    console.log('mouse position of x,y is ',x,y);
                    var pixel=ctx.getImageData(x,y,1,1);
                    var data=pixel.data;
                    //console.log('pixel is =',pixel);
                    //var data=pixel.data;
                    console.log('data is equal to ',data);
                    const rgba='rgba('+data[0]+','+data[1]+','+data[2]+','+data[3]/255+')';
                    console.log('rgba=  ',rgba);
                    destination.style.background=rgba;
                    destination.getContext('2d').font="24px serif";
                    destination.getContext('2d').strokeText(rgba,10,100);
                    return rgba;
               }
               canvas.addEventListener('mousemove',function(event){
                    hoveredColor.getContext('2d').clearRect(0,0,300,200);
                    pick(event,hoveredColor);
               });
               canvas.addEventListener('click',function(event){
                    selectedColor.getContext('2d').clearRect(0,0,300,200);
                    pick(event,selectedColor);
               
               });
               

          </script>
     </html>


给出结果:(自己做了修改后,每次颜色输出都会把原来地清除;)
在这里插入图片描述


点击全文阅读


本文链接:http://www.zhangshiyu.com/post/35057.html

代码  修改  鼠标  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 全书免费经年离歌愁未休顾允廷宋卿落版_经年离歌愁未休顾允廷宋卿落版全书免费
  • 完结文夏清烟季憬湛列表_完结文夏清烟季憬湛
  • 夏清烟季憬湛+后续+结局(季憬湛夏清烟)_(夏清烟季憬湛+后续+结局后续)季憬湛夏清烟列表_笔趣阁(夏清烟季憬湛+后续+结局)
  • 夏清烟季憬湛+后续+结局(季憬湛夏清烟)结局_季憬湛夏清烟+结局列表_笔趣阁(夏清烟季憬湛+后续+结局)
  • 愿将过往秋收冬藏(孟棠音季怀瑾)_愿将过往秋收冬藏孟棠音季怀瑾
  • 顾允廷宋卿落(经年离歌愁未休顾允廷全书+后续)_(顾允廷宋卿落)列表_笔趣阁(经年离歌愁未休顾允廷全书+后续)
  • [夺我羽翼]小说章节试读_「杜思予荣誉白月光」小说后续在线免费阅读
  • 忘川不渡相思劫精心打造(江书熠顾司月)_忘川不渡相思劫精心打造江书熠顾司月
  • (番外)+(全书)竹林杏晚清风起全书+后续+结局(沈千鹤段清野)全书在线_竹林杏晚清风起全书+后续+结局免费列表_笔趣阁(沈千鹤段清野)
  • 相隔忘川,不复相望结局+番外榜单(秦沐川陆晚意)_相隔忘川,不复相望结局+番外榜单(秦沐川陆晚意)
  • 神女老婆,却在背地承欢作乐全书+后续+结局(温南枝沈清宴)结局_温南枝沈清宴+结局列表_笔趣阁(神女老婆,却在背地承欢作乐全书+后续+结局)
  • 今夜无人告白结局+番外(段珂怡贺砚清)列表_今夜无人告白结局+番外(段珂怡贺砚清)全书+后续+结局在线

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1