0

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

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

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

谢谢

4

2 回答 2

2

KineticJS 仅使用常规画布,因此 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/

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

于 2013-05-16T21:32:57.737 回答
0

坚持,稍等。您不需要使用像素数据来放大图像。只需使用比例:

image.setScale(3);

如果您需要原始图像的克隆,您可以先克隆它

var clone = image.clone();

于 2013-05-19T04:17:48.203 回答