猿问

从画布上获取像素颜色

从画布上获取像素颜色

是否可以在鼠标下获得RGB值像素?有完整的例子吗?到目前为止,我的情况如下:

<script>function draw() {
  var ctx = document.getElementById('canvas').getContext('2d');
  var img = new Image();
  img.src = 'Your URL';

  img.onload = function(){
    ctx.drawImage(img,0,0);


  };

  canvas.onmousemove = function(e) {
        var mouseX, mouseY;

        if(e.offsetX) {
            mouseX = e.offsetX;
            mouseY = e.offsetY;
        }
        else if(e.layerX) {
            mouseX = e.layerX;
            mouseY = e.layerY;
        }
        var c = ctx.getImageData(mouseX, mouseY, 1, 1).data;

        $('#ttip').css({'left':mouseX+20, 'top':mouseY+20}).html(c[0]+'-'+c[1]+'-'+c[2]);
  };}</script>



红糖糍粑
浏览 969回答 3
3回答

哔哔one

我知道这是个老掉牙的问题,但这是另一个选择。然后,在画布上的鼠标移动事件中,我会将图像数据存储在数组中:var index = (Math.floor(y) * canvasWidth + Math.floor(x)) * 4var r = data[index]var g = data[index + 1]var b = data[index + 2]var a = data[index + 3]比每次获得ImageData要容易得多。
随时随地看视频慕课网APP
我要回答