2017-01-29 48 views

回答

1

使用下面的函數可以根據所有元素/對象按比例調整畫布的大小。您可以通過任何寬度/大小GetCanvasAtResoution(279);希望這有助於。

function GetCanvasAtResoution(newWidth) 
    { 
     if (canvas.width != newWidth) { 
      var scaleMultiplier = newWidth/canvas.width; 
      var objects = canvas.getObjects(); 
      for (var i in objects) { 
       objects[i].scaleX = objects[i].scaleX * scaleMultiplier; 
       objects[i].scaleY = objects[i].scaleY * scaleMultiplier; 
       objects[i].left = objects[i].left * scaleMultiplier; 
       objects[i].top = objects[i].top * scaleMultiplier; 
       objects[i].setCoords(); 
      } 
      var obj = canvas.backgroundImage; 
      if(obj){ 
       obj.scaleX = obj.scaleX * scaleMultiplier; 
       obj.scaleY = obj.scaleY * scaleMultiplier; 
      } 

      canvas.discardActiveObject(); 
      canvas.setWidth(canvas.getWidth() * scaleMultiplier); 
      canvas.setHeight(canvas.getHeight() * scaleMultiplier); 
      canvas.renderAll(); 
      canvas.calcOffset(); 
     }   
    } 
+0

謝謝你的回答,我試過這個功能,但只調整了畫布區域的大小,而不是內部的對象。我在調用GetCanvasAtResoution(width)時調用函數; –

+0

@Álvaro我創建了一個jsfiddle來展示這個函數是如何工作的,以調整背景圖像和文本對象內部的畫布大小 - https://jsfiddle.net/zsk7785t/ – Ranjana

+0

嗨@Ranjana非常感謝你,而不是它正在工作,感謝分享。 –

相關問題