javascript - 如何使用 Fabric.js 添加图像滤镜

标签 javascript fabricjs

我希望能够将图像过滤器添加到用户本地上传的图像中。本地上传工作正常,但图像未转换为灰度。这是我的代码:

$("#file_input").change(function (e) {

    var URL = window.webkitURL || window.URL;
    var url = URL.createObjectURL(e.target.files[0]);
    img = new Image();      
    img.src = url;
    img.onload = function () {
        ctx = document.getElementById('myCanvas').getContext("2d");

    ///
     fabric.Image.fromURL( img.src, function( img ) {

  // add filter
  img.filters.push(new fabric.Image.filters.Grayscale());

  // apply filters and re-render canvas when done
  img.applyFilters(ctx.renderAll.bind(ctx));

  // add image onto canvas
  ctx.drawImage(img, 0, 0, myCanvas.width, myCanvas.height);
});
    }

    ///
});

最佳答案

我不明白你的代码。但我认为你想要这样的东西..

$("#file_input").change(function (e) {

    var URL = window.webkitURL || window.URL;
    var url = URL.createObjectURL(e.target.files[0]);
    img = new Image();      
    img.src = url;
    img.onload = function () {
        var canvas = new fabric.Canvas("c");

    ///
     fabric.Image.fromURL( img.src, function( img ) {

  // add filter
  img.filters.push(new fabric.Image.filters.Grayscale());

  // apply filters and re-render canvas when done
  img.applyFilters(canvas.renderAll.bind(canvas));

  // add image onto canvas
  img.width = canvas.width;
  img.height = canvas.height;
  canvas.add(img);
});
    }

    ///
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.5.0/fabric.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


<input type="file" id="file_input"/>
<canvas id="c"></canvas>

关于javascript - 如何使用 Fabric.js 添加图像滤镜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36458805/

相关文章:

javascript - 在 Angular 中使用 ngFor 创建织物 Canvas

reactjs - 如何将 Fabric.js 与 React 结合使用?

javascript - 如何从 wkWebview/webView 中的 Objective-C 更改 `&lt;input&gt;` 元素属性(例如值)

javascript - 使用 Glue 定义 Auth 策略

javascript - CSS 百分比不正确

javascript - 如何修复 FabricJS 中 Inkscape SVG 的缩放和旋转?

javascript - 删除对象背景并将对象调整为其在 fabric js 中的内容

javascript - 创建动态对象组

javascript - 在用户点击时,将一段 javascript 加载到页面中

javascript - 连接上的图表生成器自定义属性