从画布上获取像素颜色是否可以在鼠标下获得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>
3 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
我知道这是个老掉牙的问题,但这是另一个选择。然后,在画布上的鼠标移动事件中,我会将图像数据存储在数组中:
var index = (Math.floor(y) * canvasWidth + Math.floor(x)) * 4
var r = data[index]
var g = data[index + 1]
var b = data[index + 2]
var a = data[index + 3]
比每次获得ImageData要容易得多。
添加回答
举报
0/150
提交
取消