Вход Регистрация
Файл: concrete5.7.5.6/concrete/js/build/core/image-editor/build/save.js
Строк: 127
<?php
im
.save = function saveImage() {
    
im.fire('ChangeActiveAction');
    
im.fire('ImageEditorWillSave');

    $.
fn.dialog.showLoader();

    
im.stage.toDataURL({
        
callback: function (data) {
            var 
fake_canvas = $('<img />').addClass('fake_canvas').appendTo(im.editorContext.children('.Editor'));
            
fake_canvas.attr('src'data);

            
fake_canvas.css({
                
position'absolute',
                
top0,
                
left0,
                
backgroundColor'white'
            
});

            var 
oldStagePosition im.stage.getPosition(),
                
oldScale im.scale,
                
oldWidth im.stage.getWidth(),
                
oldHeight im.stage.getHeight();

            
im.stage.setPosition(-im.saveArea.getX(), -im.saveArea.getY());
            
im.stage.setScale(1);
            
im.background.hide();
            
im.foreground.hide();
            
im.stage.setHeight(im.saveHeight 100);
            
im.stage.setWidth(im.saveWidth 100);
            
im.stage.draw();

            var 
mime settings.mime;
            if (
mime !== 'image/jpeg' && mime !== 'image/png') {
                
// default to png
                
mime 'image/png';
            }

            
im.stage.toDataURL({
                
mimeTypemime,
                
qualitysettings.jpegCompression,
                
widthim.saveWidth,
                
heightim.saveHeight,
                
callback: function saveImageDataUrlCallback(url) {
                    
im.stage.setPosition(oldStagePosition);
                    
im.background.show();
                    
im.foreground.show();
                    
im.stage.setScale(oldScale);
                    
im.stage.setHeight(oldHeight);
                    
im.stage.setWidth(oldWidth);
                    
im.stage.draw();

                    
fake_canvas.remove();

                    $.
post(im.saveUrl_.extend(im.saveData, {
                        
fIDim.fileId,
                        
imgDataurl
                    
}), function (res) {
                        $.
fn.dialog.hideLoader();
                        var 
result JSON.parse(res);
                        if (
result.error === 1) {
                            
alert(result.message);
                            $(
'button.save[disabled]').attr('disabled'false);
                        } else if (
result.error === 0) {
                            
im.fire('ImageEditorDidSave'_.extend(im.saveData, {
                                
fIDim.fileId,
                                
imgDataurl
                            
}));
                            
Concrete.event.fire('ImageEditorDidSave'_.extend(im.saveData, {
                                
fIDim.fileId,
                                
imgDataurl
                            
}));
                        }
                    });
                }
            });
        }
    });
};

im.actualPosition = function actualPosition(xycxcyrad) {
    var 
ay cy,
        
ax cx,
        
degChange im.activeElement.getRotation() + Math.atan2(ayax),
        
Math.sqrt(Math.pow(ax2) + Math.pow(ay2));
    return [
cx + (Math.cos(degChange)), cy + (Math.sin(degChange))];
};

im.getActualRect = function actualRect(cxcyelem) {
    var 
rect = [], rad elem.getRotation();
    
rect.push(im.actualPosition(elem.getX(), elem.getY(), cxcyrad));
    
rect.push(im.actualPosition(elem.getX() + elem.getWidth() * elem.getScaleX(), elem.getY(), cxcyrad));
    
rect.push(im.actualPosition(elem.getX() + elem.getWidth() * elem.getScaleX(), elem.getY() + elem.getHeight() * elem.getScaleY(), cxcyrad));
    
rect.push(im.actualPosition(elem.getX(), elem.getY() + elem.getHeight() * elem.getScaleY(), cxcyrad));
    return 
rect;
};

im.adjustSavers = function AdjustingSavers(fire) {
    if (
im.activeElement.nodeType === 'Stage') return;
    
im.foreground.autoCrop false;
    
im.background.autoCrop false;
    var 
ieuscore = {min: {xfalseyfalse}, max: {xfalseyfalse}};
    
/*
     for (var i = im.stage.children.length - 1; i >= 0; i--) {
     var layer = im.stage.children[i];
     if (layer.autoCrop === false) continue;
     for (var e = layer.children.length - 1; e >= 0; e--) {
     var child = layer.children[e],
     rect = im.getActualRect(0, 0, child);
     console.log(child);

     for (var u = rect.length - 1; u >= 0; u--) {
     var point = rect[u], x = point[0] + layer.getX(), y = point[1] + layer.getY();
     if (x > score.max.x || score.max.x === false) score.max.x = x;
     if (x < score.min.x || score.min.x === false) score.min.x = x;
     if (y > score.max.y || score.max.y === false) score.max.y = y;
     if (y < score.min.y || score.min.y === false) score.min.y = y;
     }
     }
     }
     */
    
var child im.activeElement,
        
layer child.parent,
        
rect im.getActualRect(00child),
        
usize;

    for (
rect.length 1>= 0u--) {
        var 
point rect[u], point[0] + layer.getX(), point[1] + layer.getY();
        if (
score.max.|| score.max.=== falsescore.max.x;
        if (
score.min.|| score.min.=== falsescore.min.x;
        if (
score.max.|| score.max.=== falsescore.max.y;
        if (
score.min.|| score.min.=== falsescore.min.y;
    }

    
size = {widthscore.max.score.min.xheightscore.max.score.min.y};
    if (!
im.strictSize) {
        
im.alterCore('saveWidth'Math.round(size.width));
        
im.alterCore('saveHeight'Math.round(size.height));
        
im.buildBackground();
    }

    var 
ap = [im.center.- (im.activeElement.getWidth() * im.activeElement.getScaleX()) / 2,
            
im.center.- (im.activeElement.getHeight() * im.activeElement.getScaleY()) / 2],
        
adj im.actualPosition(ap[0], ap[1], im.center.xim.center.yim.activeElement.getRotation());

    
im.activeElement.parent.setPosition(adj.map(Math.round));

    if (
fire !== falseim.fire('adjustedsavers');
    
im.stage.draw();
};

im.bind('imageLoad', function () {
    
setTimeout(im.adjustSavers0);
});
?>
Онлайн: 1
Реклама