效果图:
代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>canvas 颜色拾取器</title>
<style>
#canvas {
border: 1px solid red;
}
#block {
display: inline-block;
width:50px;
height: 50px;
vertical-align: top;
background-color: black;
}
</style>
</head>
<body>
<canvas id="canvas" width="400" height="400">你的浏览器不支持canvas</canvas>
<span id="block"></span>
<script>
//获取id
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
//绘制填充颜色块
for(var i = 0; i < 16; i++) {
for(var j = 0; j < 16; j++) {
// gba(255,255,0) --->gba(255,0,0)
ctx.fillStyle = "rgb("+(255 - j*16)+","+(255 - i*16)+",0)";
ctx.fillRect(i*25,j*25,25,25);
}
}
// 显示获取的颜色
var block = document.getElementById("block");
// 点击利用imgDate获取rgb值
canvas.onclick = function(e) {
var e = e || window.event;
//e.layerX,e.layerY相对于绑定事件对象canvas的坐标
var x = e.layerX;
var y = e.layerY;
// console.log(e);
var imgData = ctx.getImageData(x,y,1,1);
var r = imgData.data[0];
var g = imgData.data[1];
var b = imgData.data[2];
block.style.backgroundColor = "rgb("+r+","+g+","+b+")";
}
</script>
</body>
</html>