Я хочу добавить объекты тканевого холста на другой холст с измененными размерами объектов.
ошибка после добавления, исходные объекты холста также меняются.
wscntl.canvas - мой оригинальный холст
холст мой дубликат холст
function() {
var deffered = $q.defer();
var self = this;
var allObjects = wsCntl.canvas.getObjects();
var canvas = wsCntl.CopyCanvas;
var BackgroundImage = wsCntl.canvas.backgroundImage;
var zoom = "100";
if (allObjects) {
for (var i = 0; i < allObjects.length; i++) {
allObjects[i].scaleX = (allObjects[i].designProperty.actualZoomX * (zoom / 100));
allObjects[i].scaleY = (allObjects[i].designProperty.actualZoomY * (zoom / 100));
allObjects[i].left = (allObjects[i].designProperty.actualleft * (zoom / 100));
allObjects[i].top = (allObjects[i].designProperty.actualtop * (zoom / 100));
canvas.add(allObjects[i]);
}
}
if (BackgroundImage) {
var left = 0,
top = 0;
var canvasAspect = canvas.width / canvas.height;
var imgAspect = BackgroundImage.width / BackgroundImage.height;
if (canvasAspect >= imgAspect) {
var scaleFactor = canvas.width / BackgroundImage.width;
} else {
var scaleFactor = canvas.height / BackgroundImage.height;
}
BackgroundImage.set({
originX: 'left',
originY: 'top',
left: left,
top: top,
scaleX: scaleFactor,
scaleY: scaleFactor
});
canvas.setBackgroundImage(BackgroundImage);
} else if (wsCntl.canvas.backgroundColor != '#fff') {
canvas.backgroundColor = wsCntl.canvas.backgroundColor;
}
canvas.renderAll();
var data = canvas.toDataURL();
var json_data = JSON.stringify(canvas.toJSON());
[![enter image description here][1]][1]
wsCntl = wsController = null;
deffered.resolve(data);
return deffered.promise;
}
Пожалуйста, предоставьте решение.