我正在使用Kinetic JS来显示图像,我想实现放大功能。
所以基本上我想复制鼠标指针悬停在上面的图像区域,缩放它,并将其显示在屏幕的其他位置。
您可以使用canvas context.getImageData()函数获取HTML5画布像素数据,但是在Kinetic JS中是否有其他方法可以执行此操作,还是应该尝试获取图像的基础上下文并使用getImageData函数?
由于
答案 0 :(得分: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
});
然而,一旦你向舞台添加更多图层,事情就会变得有点棘手。你必须遍历每个画布并抓住像素。
答案 1 :(得分:0)
image.setScale(3);
如果您需要克隆原始图像,可以先将其克隆
var clone = image.clone();