Zai*_*ain 6 javascript html5 canvas html5-canvas
我在画布上放了一个图像,当用户将鼠标移到图像上时,我希望获得该图像像素的RGB值.这是我写的代码:
<canvas id="myCanvas" width="200" height="200" style="border: red;border-style: dotted">
Your browser does not support the canvas element.
</canvas>
<script>
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var destX = 0;
var destY = 0;
var imageObj = new Image();
imageObj.onload = function()
{
context.drawImage(imageObj, destX, destY);
};
imageObj.src = "zain.jpg";
canvas.onclick = function(e) {
var x = e.pageX;
var y = e.pageY;
var canvasColor = context.getImageData(x, y, 1,1); // rgba e [0,255]
var pixels = canvasColor.data;
var r = pixels[0];
var g = pixels[1];
var b = pixels[2];
document.body.style.backgroundColor = "rgb("+r+','+g+','+b+")";
}
Run Code Online (Sandbox Code Playgroud)
尝试一下这个:
var color = document.getElementById("color");
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var imageObj = new Image();
imageObj.onload = function(){
context.drawImage(imageObj, destX, destY);
};
imageObj.src = "zain.jpg";
canvas.onmousemove = function(e) {
// not so sure about these... might need to offset them or so
var x = e.x;
var y = e.y;
// set color now
var canvasColor = context.getImageData(x, y, 1, 1).data; // rgba e [0,255]
var r = canvasColor[0];
var g = canvasColor[1];
var b = canvasColor[2];
color.style.backgroundColor = 'rgb(' + r + ',' + g + ',' + b + ')';
}
Run Code Online (Sandbox Code Playgroud)
请注意,该代码段要求您在某处具有ID为"color"的div.它设置像素颜色.
| 归档时间: |
|
| 查看次数: |
9998 次 |
| 最近记录: |