javascript - 从 Kinetic JS Image 获取像素数据

标签 javascript html5-canvas kineticjs

我正在使用 Kinetic JS 来显示图像,我想实现一个放大功能。

所以基本上我想复制鼠标指针悬停在其上的图像区域,对其进行缩放,并将其显示在屏幕上的其他位置。

您可以使用 canvas context.getImageData() 函数获取 HTML5 Canvas 像素数据,但是在 Kinetic JS 中是否有其他方法可以做到这一点,或者我应该尝试获取图像的底层上下文并使用 getImageData 函数?

谢谢

最佳答案

KineticJS 仅使用常规 Canvas ,因此 getImageData 可以工作。只需获取您想要的上下文即可。

$('#canvas').mousemove(function(e) {
   var pos = findPos(this);
   var x = e.pageX - pos.x;
   var y = e.pageY - pos.y;
   var coord = "x=" + x + ", y=" + y;
   var c = this.getContext('2d');
   var p = c.getImageData(x, y, 1, 1).data; 
   var hex = "#" + ("000000" + rgbToHex(p[0], p[1], p[2])).slice(-6);
   //do something with the color
});

http://jsfiddle.net/7MMK2/26/

但是,一旦您向舞台添加更多层,事情就会变得有点棘手。您必须循环遍历每个 Canvas 并获取像素。

关于javascript - 从 Kinetic JS Image 获取像素数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596575/

相关文章:

javascript - 重复项的两个总和问题 - 更惯用的 Javascript 解决方案

javascript - 使用 html2canvas 以固定宽度捕获页面,无论屏幕大小如何

Javascript - 交互式粒子 Logo 不起作用

python - KineticJS toDataURL() 在 Python 中给出不正确的填充错误

KineticJS: overflow hidden 层的内容

javascript - 为什么 FontAwesome 建议通过 .js 脚本而不是 CDN 链接包含?

javascript - 将 RGB 转换为十六进制颜色

javascript - 如何使用 Jquery 停止所有音频播放

java - 在序列化我的对象时,如何强制 Jackson 将数字写成字符串

javascript - 当源 Canvas 和目标 Canvas 相同时,HTML5 Canvas drawImage函数速度很慢?