При использовании метода .toImage() в KineticJS мне всегда кажется, что я получаю гораздо большее изображение, чем это действительно необходимо, а часть, которая мне нужна, занимает только верхний левый угол изображения данных. Моя сцена масштабируется в зависимости от размера окна и предварительно определенного начального размера (при изменении размера окна вызывается функция изменения размера, которая устанавливает масштаб и размер контейнера). Должен ли я устанавливать какую-то обрезку, когда я использую 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();
}});
}});
}
});