Roo/dialog/UploadCropbox.js
authorleon <leon@roojs.com>
Tue, 9 Aug 2022 08:38:25 +0000 (16:38 +0800)
committerleon <leon@roojs.com>
Tue, 9 Aug 2022 08:38:25 +0000 (16:38 +0800)
Roo/dialog/UploadCropbox.js

index a087ef8..b4d1b9b 100644 (file)
@@ -625,12 +625,29 @@ Roo.extend(Roo.dialog.UploadCropbox, Roo.Component,  {
         var maxWidth = this.imageEl.OriginWidth;
         var maxHeight = this.imageEl.OriginHeight;
 
-        var preview_left = this.previewEl.getLeft(true);
-        var preview_top = this.previewEl.getTop(true);
+
+        var old_scale_level = this.baseScale * Math.pow(1.02, this.startScale);
+        var old_canvas_width = Math.floor(this.imageEl.OriginWidth * old_scale_level);
+        var old_canvas_height = Math.floor(this.imageEl.OriginHeight * old_scale_level);
+
+        var old_center_left = Math.ceil((this.bodyEl.getWidth() - old_canvas_width) / 2);
+        var old_center_top = Math.ceil((this.bodyEl.getHeight() - old_canvas_height) / 2);
+
+        var new_center_left = Math.ceil((this.bodyEl.getWidth() - this.canvasEl.width) / 2);
+        var new_center_top = Math.ceil((this.bodyEl.getHeight() - this.canvasEl.height) / 2);
+
+        var old_left = this.previewEl.getLeft(true);
+        var old_top = this.previewEl.getTop(true);
+
+        var left_diff = new_center_left - old_center_left;
+        var top_diff = new_center_top - old_center_top;
+
+        var new_left = old_left + left_diff;
+        var new_top = old_top + top_diff;
 
         console.log("=================================");
-        console.log("preview left: " + preview_left);
-        console.log("preview_top : " + preview_top);
+        console.log("preview left: " + new_left);
+        console.log("preview_top : " + new_top);