Roo/dialog/UploadCropbox.js
[roojs1] / Roo / dialog / UploadCropbox.js
index f4c9269..cd0ca83 100644 (file)
@@ -580,6 +580,10 @@ Roo.extend(Roo.dialog.UploadCropbox, Roo.Component,  {
         var width = Math.ceil(this.imageEl.OriginWidth * this.getScaleLevel() / minScale);
         var height = Math.ceil(this.imageEl.OriginHeight * this.getScaleLevel() / minScale);
 
+        console.log("ZOOM");
+        console.log("WIDTH: " + (this.thumbEl.getWidth() / this.getScaleLevel()));
+        console.log("HEIGHT: " + (this.thumbEl.getHeight() / this.getScaleLevel()));
+
 
         var maxWidth = this.imageEl.OriginWidth;
         var maxHeight = this.imageEl.OriginHeight;
@@ -756,14 +760,11 @@ Roo.extend(Roo.dialog.UploadCropbox, Roo.Component,  {
     
     draw : function()
     {
-        console.log("DRAW");
         this.previewEl.dom.innerHTML = '';
         
         var canvasEl = document.createElement("canvas");
         
         var contextEl = canvasEl.getContext("2d");
-
-        console.log(this.getScaleLevel());
         
         canvasEl.width = this.imageEl.OriginWidth * this.getScaleLevel();
         canvasEl.height = this.imageEl.OriginWidth * this.getScaleLevel();
@@ -871,14 +872,16 @@ Roo.extend(Roo.dialog.UploadCropbox, Roo.Component,  {
         var canvas = document.createElement("canvas");
         
         var context = canvas.getContext("2d");
-                
-        canvas.width = this.minWidth;
+
+        canvas.width = this.thumbEl.getWidth() / this.getScaleLevel();
         
-        canvas.height = this.minHeight;
+        canvas.height = this.thumbEl.getHeight() / this.getScaleLevel();
 
         console.log("CANVAS WIDTH: " + canvas.width);
         console.log("CANVAS HEIGHT: " + canvas.height);
 
+        console.log("SCALELEVLE: " + this.getScaleLevel());
+
         switch (this.rotate) {
             case 0 :
                 
@@ -894,36 +897,36 @@ Roo.extend(Roo.dialog.UploadCropbox, Roo.Component,  {
                 console.log("X: " + x);
                 console.log("Y: " + y);
                 
-                var targetWidth = this.minWidth - 2 * x;
-                var targetHeight = this.minHeight - 2 * y;
+                // var targetWidth = this.minWidth - 2 * x;
+                // var targetHeight = this.minHeight - 2 * y;
 
-                console.log("targetWidth: " + targetWidth);
-                console.log("targetHeight: " + targetHeight);
+                // console.log("targetWidth: " + targetWidth);
+                // console.log("targetHeight: " + targetHeight);
                 
-                var scale = 1;
+                // var scale = 1;
                 
-                if((x == 0 && y == 0) || (x == 0 && y > 0)){
-                    scale = targetWidth / width;
-                }
+                // if((x == 0 && y == 0) || (x == 0 && y > 0)){
+                //     scale = targetWidth / width;
+                // }
                 
-                if(x > 0 && y == 0){
-                    scale = targetHeight / height;
-                }
+                // if(x > 0 && y == 0){
+                //     scale = targetHeight / height;
+                // }
                 
-                if(x > 0 && y > 0){
-                    scale = targetWidth / width;
+                // if(x > 0 && y > 0){
+                //     scale = targetWidth / width;
                     
-                    if(width < height){
-                        scale = targetHeight / height;
-                    }
-                }
+                //     if(width < height){
+                //         scale = targetHeight / height;
+                //     }
+                // }
 
-                console.log("scale: " + scale);
+                // console.log("scale: " + scale);
                 
-                context.scale(scale, scale);
+                // context.scale(scale, scale);
                 
-                var sx = Math.min(this.canvasEl.width - this.thumbEl.getWidth(), this.thumbEl.getLeft(true) - this.previewEl.getLeft(true));
-                var sy = Math.min(this.canvasEl.height - this.thumbEl.getHeight(), this.thumbEl.getTop(true) - this.previewEl.getTop(true));
+                var sx = this.thumbEl.getLeft(true) - this.previewEl.getLeft(true);
+                var sy = this.thumbEl.getTop(true) - this.previewEl.getTop(true);
 
                 console.log("sx: " + sx);
                 console.log("sy: " + sy);
@@ -931,6 +934,13 @@ Roo.extend(Roo.dialog.UploadCropbox, Roo.Component,  {
                 sx = sx < 0 ? 0 : (sx / this.getScaleLevel());
                 sy = sy < 0 ? 0 : (sy / this.getScaleLevel());
 
+                if(canvas.width > 1200) {
+                    var scale = 1200 / canvas.width;
+                    context.scale(scale, scale);
+                    canvas.height = 1200 * this.thumbEl.getHeight() / this.thumbEl.getWidth();
+                    canvas.width = canvas.width * scale;
+                }
+
                 context.drawImage(imageCanvas, sx, sy, width, height, x, y, width, height);
                 
                 break;