2016-01-09 44 views
0

我試圖用布js.I正在處理非常龐大的圖像圖像處理工作,因此我有那麼下一次可以顯示圖像處理後,保存畫布的副本更快與jQuery的id.show。
但我想渲染圖像的確切位置。我使用canvas.zoomToPoint and canvas.relativePan縮放和平移圖像,但我做的後放大+盤中,然後將圖像處理應用到顯示隱藏的畫布和隱患帆布適用hiddencanvas.zoomToPoint and hiddencanvas.relativePan,它不呈現在哪裏我離開舊畫布的精確位置圖像。
我在做任何錯誤。這裏有一個支持Fiddle。但是,小提琴呈現上傳的圖像,如果你縮放和平移並點擊反轉,倒置的圖像不會移動那裏平移代碼:```var panning = false; canvas.on( '鼠標:向上',函數(E){ 平移= FALSE; });如何留住在圖像中的位置布JS

canvas.on('mouse:down', function (e) { 
     panning = true; 
    }); 
    canvas.on('mouse:move', function(e) { 
     if (panning && e && e.e) { 
      var x = e.offsetX, y = e.offsetY; 
      var delta = new fabric.Point(e.e.movementX, e.e.movementY); 
      canvas.relativePan(delta); 
      //Above statement pan's the image but what to save to server in order to render the image on the exact panned location ? 
     } 
    }); 

``,而這是變焦代碼:canvas.zoomToPoint({ x: x, y: y }, newZoom);

回答

2

我找到了答案,這是一個非常愚蠢的錯誤。

每個畫布都有一個視口轉換。 所以,我們只需要得到canvas.viewportTransform,然後我們可以得到的ScaleX,的scaleY,左側,頂部爲[將scaleX,0,0,的scaleY,左側,頂部。

希望,這將幫助別人。

相關問題