FabricJS使用画布缩放调整滤镜大小

时间:2018-06-12 04:41:35

标签: fabricjs

只要缩放级别设置为1.0,fabricJS resizefilters的默认行为就会使图像看起来很棒。这意味着在放大时以及使用乘数导出画布时,具有resizefilter的图像看起来像素化。 resizefilters有没有办法考虑当前的画布缩放级别或toDataURL乘数?

https://jsfiddle.net/melchiar/mh9ba4pz/

fabric.Image.fromURL(imageData, function(img) {
  img.set({
    left: 10,
    top: 10
  }).scale(0.5);
  img.resizeFilter = new fabric.Image.filters.Resize({
    resizeType: 'hermite'
  });
  img.applyResizeFilters();
  canvas.add(img);
});

2 个答案:

答案 0 :(得分:0)

嗨,我也已经在问题跟踪器上看到了您的问题,到目前为止,没有简单的方法可以使用调整大小过滤器来获取它。 使其非像素化的唯一方法是在导出时删除resizeFilter,并在正常的滤镜链中以预先计算的比率添加一个resizeFilter。

这实际上是一个错误。

问题跟踪器:https://github.com/fabricjs/fabric.js/issues/5071

答案 1 :(得分:0)

仅此问题的更新,此问题是Version 2.3.4修复的错误。现在,使用resizefilter将基于当前缩放级别应用调整大小,并且还可以与toDataURL乘数一起使用。