我正在使用 Kinetic JS 显示图像,我想实现一个放大功能。
所以基本上我想复制鼠标指针悬停的图像区域,对其进行缩放,并将其显示在屏幕的其他位置。
您可以使用 canvas context.getImageData() 函数获取 HTML5 画布像素数据,但是在 Kinetic JS 中是否有另一种方法可以做到这一点,或者我应该尝试获取图像的底层上下文并使用 getImageData 函数?
谢谢
我正在使用 Kinetic JS 显示图像,我想实现一个放大功能。
所以基本上我想复制鼠标指针悬停的图像区域,对其进行缩放,并将其显示在屏幕的其他位置。
您可以使用 canvas context.getImageData() 函数获取 HTML5 画布像素数据,但是在 Kinetic JS 中是否有另一种方法可以做到这一点,或者我应该尝试获取图像的底层上下文并使用 getImageData 函数?
谢谢
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
});
但是,一旦您向舞台添加更多层,事情就会变得有点棘手。您必须遍历每个画布并抓取像素。
坚持,稍等。您不需要使用像素数据来放大图像。只需使用比例:
image.setScale(3);
如果您需要原始图像的克隆,您可以先克隆它
var clone = image.clone();