2014-02-07 169 views

回答

5

截至版本1.4.13 FabricJs支持图片缩放过滤器。

调整大小过滤器可以在2种方式使用:

表示静态负载调整与固定尺

- 动态上缩放由代码图像对象o通过鼠标拖动调整大小。

有4个过滤器,截至目前实现的:

-SliceHack,不是一个真正的过滤器,但一个黑客通过调整0.5图像多次以获得更流畅的大小调整。

-Hermite滤波器

-Bilinear滤波

-Lanczos与裂片参数调整

这里遵循一些例子:

  1. 静态调整在负载厄米滤波器,固定比例尺

    var theImage = new fabric.Image(imag, { 
        top: 0, 
        left: 0 
    }); 
    theImage.filters.push(
           new fabric.Image.filters.Resize({ 
             resizeType: 'hermite', 
             scaleX: 0.1, 
             scaleY: 0.1 
             }) 
            ); 
    theImage.applyFilters(); 
    canvas.add(theImage); 
    
  2. 动态调整用的Lanczos滤波器,2裂片

    var theImage = new fabric.Image(imag, { 
        top: 0, 
        left: 0 
    }); 
    theImage.resizeFilters.push(new fabric.Image.filters.Resize({ 
        resizeType: 'lanczos', // typo fixed 
        lanczosLobes: 2 // typo fixed 
    })); 
    canvas.add(theImage); 
    
0

如果要设置宽度为1500,然后在下面的代码可以用于rezise。它为我工作。图像看起来正常。

var scale = 1500/oImg.getWidth(); 

var newWidth = oImg.getWidth() * scale; 
var newHeight = oImg.getHeight() * scale; 

oImg.set({width : newWidth, height : newHeight});