【问题标题】:Fabricjs: When I apply and re-apply Image filters, Image quality went downFabricjs:当我应用并重新应用图像过滤器时,图像质量下降
【发布时间】:2013-05-02 13:33:09
【问题描述】:

我使用fabricjs在我的图像中应用了反转、灰度和其他过滤器,然后图像质量就会下降。请查看下面的代码,如果代码有任何问题,请告诉我。我正在使用图像(img)作为填充矩形的图案。

var filters = ['brightness','grayscale', 'invert', 'sepia', 'sepia2','blur', 'sharpen'];

var applyFilter = function(index, filter) {
    img.filters[index] = filter;
    img.applyFilters(canvas.renderAll.bind(canvas));
}

var applyFilterValue = function(index, prop, value) {
    if (img.filters[index]) {
    img.filters[index][prop] = value;
    img.applyFilters(canvas.renderAll.bind(canvas));
    }
}

img.filters[0] = new filter.Brightness({'brightness': 0});

$('body').on('click', '#blackwhite', function() {
    applyFilter(1, this.checked && new filter.Grayscale());
});
$('body').on('click', '#invert', function() {
    applyFilter(2, this.checked && new filter.Grayscale());
});

【问题讨论】:

    标签: javascript image canvas fabricjs


    【解决方案1】:

    我遇到了同样的问题,发现了一些奇怪的东西。

    我正在使用向画布添加图像

    var img = new fabric.Image(ele,{});

    当我对上面的图像应用过滤器时,图像的质量下降了。

    但是当我使用

    将图像添加到画布时

    fabric.Image.fromURL("图像路径");

    现在对所选图像应用滤镜效果很好。

    【讨论】:

      【解决方案2】:

      因为在对图像应用过滤器时,我们会在过滤器数组上一一推送过滤器,如果您删除该空值,则将显示您的原始图像,最后会出现一个空值。..

      【讨论】:

      • 这没有帮助。您的回答不清楚您指的是什么数组。
      猜你喜欢
      • 1970-01-01
      • 2020-10-16
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多