Files
image-editor/src/ImageDataHandler.js
T
2017-10-13 15:40:02 +02:00

58 lines
1.7 KiB
JavaScript

'use strict';
function ImageDataHandler(img) {
/**
* Gets information about how the cropped image is dragged
* @return {Object}
*/
this.getCropData = function () {
return JSON.parse(sessionStorage.getItem('cropData'));
};
this.setCropData = function() {
var viewportBounds = img.canvas.getViewport().getBounds();
var dragAxis = img.canvas.getViewport().getData().axis;
var cropData = {
x: dragAxis === 'x' ? (viewportBounds.left - img.left) / (img.width * img.scaleX) : 0,
y: dragAxis === 'y' ? (viewportBounds.top - img.top) / (img.height * img.scaleY) : 0,
};
sessionStorage.setItem('cropData', JSON.stringify(cropData));
};
this.removeCropData = function() {
sessionStorage.removeItem('cropData');
};
/**
* Gets an object containing applied transformations for the Image and also
* how it is cropped and dragged.
* @return {Object}
*/
this.getData = function () {
var viewportData = img.canvas.getViewport().getData();
var returnValue = $.extend(
{},
{
mirrored: img.canvas.getMirror().getStatus(),
width: viewportData.dim.width,
height: viewportData.dim.height,
},
this.getCropData()
);
if (img.canvas.__type === 'canvas') {
var frameHandler = img.canvas.getViewport().getFrameHandler();
returnValue.edge = frameHandler.getFrameType();
returnValue.framed = returnValue.edge !== 'none';
}
return returnValue;
};
}
module.exports = ImageDataHandler;