在 KineticJS 中使用 .toImage() 方法时,我似乎总是得到一个比实际需要大得多的图像,而我只需要占据数据图像的左上角。我的舞台根据窗口大小和预定义的初始大小进行缩放(在窗口调整大小时,调用调整大小的舞台函数来设置容器的比例和大小)。当我使用 toImage() 来弥补这一点时,我应该设置某种裁剪吗?看图,整体图好像是需要的大小的两倍左右,我需要的那块大概是我需要的大小的一半,当时比例尺在0.5左右(舞台大概是一半大小,因为我使用 Chrome 并在底部打开开发人员栏以进行调试)。
这是我现在使用的:
desc.toImage({
width: sideW / cvsObj.scale,
height: sideH / cvsObj.scale,
callback: function(img) {
desc.hide();
sideImg.transitionTo({x : sideW / 2, width : 0, duration : 0.25, callback : function() {
// add image to emulate content
var params = {name : 'descimg', width : sideW, height : sideH, image : img, x : sideW / 2, y : 0};
var image = new Kinetic.Image(params);
side.add(image);
image.setWidth(1);
sideImg.hide();
image.transitionTo({x : 0, width : sideW, duration : 0.25, callback : function() {
side.add(desc);
desc.show();
image.hide();
cvsObj.page.draw();
}});
}});
}
});