Javascript 代码在getImageData之后停止

Javascript 代码在getImageData之后停止,javascript,getimagedata,Javascript,Getimagedata,我想做一个色彩采集器。我的代码在getImageData之后不知何故停止了。我找不到解决办法 有没有其他方法可以获得像素的值? 或者问题是我试图使用图片的链接 > function drawImage() { > var image = new Image(); > image.src = imageSrc; > image.onload = function() { > context.clearRect(0, 0, can

我想做一个色彩采集器。我的代码在getImageData之后不知何故停止了。我找不到解决办法

有没有其他方法可以获得像素的值? 或者问题是我试图使用图片的链接

> function drawImage()   {
>     var image = new Image();
>     image.src = imageSrc;
>     image.onload = function() {
>       context.clearRect(0, 0, canvas.width, canvas.height);
>       context.drawImage(image, 0, 0, image.width, image.height);
> 
>       $('#cPicker').mousemove(function(e) {
>         if (previewOn)                        
>         {
>           var canvasOffset = $(canvas).offset();
>           var x = Math.floor(e.pageX - canvasOffset.left);
>           var y = Math.floor(e.pageY - canvasOffset.top);
> 
>           alert(x + ', ' + y);
>           
>           var imageD = context.getImageData(x, y, 1, 1);
>           var pixel = imageD.data;
>            
>           var pixelColor = 'rgb(' + pixel[0] + ', ' + pixel[1] + ', ' + pixel[2] + ')';
>           $('preview').css('backgroundColor', pixelColor);
> 
>           $('#rValue').val(pixel[0]);
>           $('#gValue').val(pixel[1]);
>           $('#bValue').val(pixel[2]);
>           $('#rgbValue').val(pixel[0]+','+pixel[1]+','+pixel[2]);
> 
>           var dColor = pixel[2] + 256 * pixel[1] + 65536 * pixel[0];
>           $('#hexValue').val('#' + ('0000' + dColor.toString(16)).substr(-6));
>         };
>       });
> 
>       $('#cPicker').click(function(e) {
>         previewOn = !previewOn;  
>       });
>     }; 
  };

看起来像是复制品:

我还为测试创建了一个小提琴:


这在Chrome 56中运行良好,但在Firefox 52中失败:/

似乎是以下内容的复制品:

我还为测试创建了一个小提琴:

这在Chrome 56中运行良好,但在Firefox 52中失败:/

var imageSrc = "https://jsfiddle.net/img/logo.png";
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var previewOn = true;

 function drawImage()   {
     var image = new Image();
     image.src = imageSrc;
     image.onload = function() {
       context.clearRect(0, 0, canvas.width, canvas.height);
       context.drawImage(image, 0, 0, image.width, image.height);

       $('#cPicker').mousemove(function(e) {
         if (previewOn) {
           var canvasOffset = $(canvas).offset();
           var x = Math.floor(e.pageX - canvasOffset.left);
           var y = Math.floor(e.pageY - canvasOffset.top);

           console.log(x + ', ' + y);

           var imageD = context.getImageData(x, y, 1, 1);
           var pixel = imageD.data;

           var pixelColor = 'rgb(' + pixel[0] + ', ' + pixel[1] + ', ' + pixel[2] + ')';
           $('preview').css('backgroundColor', pixelColor);

           $('#rValue').val(pixel[0]);
           $('#gValue').val(pixel[1]);
           $('#bValue').val(pixel[2]);
           $('#rgbValue').val(pixel[0]+','+pixel[1]+','+pixel[2]);

           var dColor = pixel[2] + 256 * pixel[1] + 65536 * pixel[0];
           $('#hexValue').val('#' + ('0000' + dColor.toString(16)).substr(-6));
         };
       });

       $('#cPicker').click(function(e) {
         previewOn = !previewOn;  
       });
     }; 
  };

  drawImage();