javascript - Fabric.js BlendColor 图像过滤器

标签 javascript fabricjs

我在更改 Fabric.js Canvas 上小 png 的颜色时遇到问题。

在我的研究中,我发现我可以使用new Fabric.Image.filters.Tint()按照我想要的方式修改图像的颜色。然而,Fabric v2 中没有 Tint() 构造函数。根据this pageTint() 现在是 BlendColor() 过滤器的一部分。我已经用 BlendColor() 尝试了各种方法,但还没有让它发挥作用。非常感谢任何有关如何使用 BlendColor() 或其他过滤器来完成我想要的事情的建议。

我最好的猜测是做这样的事情,但它不起作用:

var filter = new fabric.Image.filters.BlendColor({
 color: '#c9f364',
 mode: 'multiply'
});

canvas.getObjects()[0].filters.push(filter);
canvas.getObjects()[0].applyFilters();
canvas.renderAll();

最佳答案

mode:'tint' 设置为 BlendColor 滤镜。

var filter = new fabric.Image.filters.BlendColor({
  color: 'red',
  mode: 'tint',
  alpha: 0.5
});

演示

var canvas = new fabric.Canvas('c');
fabric.Image.fromURL('http://fabricjs.com/assets/pug.jpg',function(img){
  img.set({
   scaleX:0.3,
   scaleY:0.3
  })
  canvas.add(img);
  var filter = new fabric.Image.filters.BlendColor({
   color:'red',
   mode: 'tint',
   alpha: 0.5
  });
  img.filters.push(filter);
  img.applyFilters();
  canvas.renderAll();
},{
 crossOrigin:'null'
})
canvas{
 border:2px solid #000;
}
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<canvas id='c' width=400 height=400></canvas>

关于javascript - Fabric.js BlendColor 图像过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49702213/

相关文章:

javascript - 如何使用 node sqlite3 with q (promise)

javascript - 如何让 C++ 参数决定网页的 HTML 外观?

javascript - 如何使用 IE7 Javascript 内存泄漏检测器?

canvas - Fabric.js 中单位的混淆

javascript - 我需要将数据添加到 FabricJS 对象并在导出 Canvas 时使用它们

fabricjs - 如何更改fabric.Image对象属性src的图像?

javascript - 在 Angular 8 中监听 DOM 事件的最佳实践是什么?

javascript - Javascript onUnload 方法的问题

javascript - 无法渲染 TIFF 图像并将其添加为结构对象

javascript - 如何在fabric js中重写canvas.add()方法