ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

非服务器模式下运行getImageData函数出现 the operation is insecure

2021-10-01 11:06:37  阅读:316  来源: 互联网

标签:canvas img insecure ctx getImageData var operation data event


我在非服务器模式下运行了一个获取图片像素数据的函数。报错。
报错为the operation is insecure.
解决思路为:打开服务器,将运行由:file:///D:/wamp64/www/js_programme/canvas_pixel.html
改为:http://localhost/js_programme/canvas_pixel.html
问题解决,结果图片:
问题解决后的结果下面放上自己的代码:

<!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.onload=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='./rhino.jpg';
               img.crossOrigin='anonymous';//这行代码不能够要;
               var canvas=document.getElementById('canvas');
               var ctx=canvas.getContext('2d');
               img.οnlοad=function(){
                    ctx.drawImage(img,0,0);
                    img.style.display='none';
               };
               var hoveredColor=document.getElementById('canvas2').getContext('2d');
               var selectedColor=document.getElementById('canvas3').getContext('2d');
               hoveredColor.rect(0,0,300,200);
               selectedColor.rect(0,0,300,200);
               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 imagedata=ctx.getImageData(x,y,2,2).data;
                    //console.log('pixel is =',pixel);
                    //var data=pixel.data;
                    console.log('data is equal to ',imagedata);
                    const rgba='rgba(data[0],data[1],data[2],data[3]/255})';
                    destination.style.background=rgba;
                    destination.textContext=rgba;
                    return rgba;
               }
               canvas.addEventListener('mousemove',function(event){
                    pick(event,hoveredColor);
               });
               canvas.addEventListener('click',function(event){
                    pick(event,selectedColor);
               });
               */

          </script>
     </html>

标签:canvas,img,insecure,ctx,getImageData,var,operation,data,event
来源: https://blog.csdn.net/weixin_47024922/article/details/120576180

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有