Как изменить размеры объектов и добавить в другой холст ткани, не влияя на внешний вид оригинального холста ткани? - PullRequest
0 голосов
/ 07 сентября 2018

Я хочу добавить объекты тканевого холста на другой холст с измененными размерами объектов. ошибка после добавления, исходные объекты холста также меняются.

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;
    }

Пожалуйста, предоставьте решение.

...