jquery 如何在fabric js中模糊对象(不是图像)?

e1xvtsh3  于 2024-01-07  发布在  jQuery
关注(0)|答案(4)|浏览(176)

我们可以模糊对象在画布上与fabricjs像矩形,多边形。至少软,对象的边缘。

更新:

我有另一种方法,我们可以模糊对象的阴影。所以模糊对象的阴影比设置偏移到相反的方向,像这样:

  1. var canvas = new fabric.Canvas("my-canvas");
  2. var rect = new fabric.Rect({
  3. top: -600,
  4. left: 100,
  5. fill: 'red',
  6. width: 100,
  7. height: 100,
  8. opacity: 0.5
  9. });
  10. rect.setShadow({
  11. color: 'red',
  12. blur: 7,
  13. offsetX: 0,
  14. offsetY: 700
  15. });
  16. canvas.add(rect);

个字符
但问题是我们不能使用globalCompositeOperation选项

n9vozmp4

n9vozmp41#

请参见结构演示:http://fabricjs.com/image-filters
在复选框模糊代码:

  1. $('blur').onclick = function() {
  2. applyFilter(9, this.checked && new f.Convolute({
  3. matrix: [ 1/9, 1/9, 1/9,
  4. 1/9, 1/9, 1/9,
  5. 1/9, 1/9, 1/9 ]
  6. }));}

字符串
它可以工作。

cpjpxq1n

cpjpxq1n3#

作为解决方法,您可以使对象透明并应用模糊阴影:

  1. var shadow = new fabric.Shadow({
  2. color: 'white',
  3. blur: 7,
  4. offsetX: 20,
  5. offsetY: 20,
  6. })
  7. var myObject = new fabric.Polygon(
  8. {
  9. ... other props
  10. shadow: shadow,
  11. }
  12. )

字符串

ve7v8dk2

ve7v8dk24#

fabricjs是HTML5 canvas API的高级库。在fabric中,您处理的是canvas对象本身,而不是上下文。要模糊对象,只需设置该对象的opacity属性。

  1. var canvas = new fabric.Canvas("my-canvas");
  2. var rect = new fabric.Rect({
  3. top: 100,
  4. left: 100,
  5. fill: 'red',
  6. width: 40,
  7. height: 40,
  8. opacity: 0.5
  9. });
  10. canvas.add(rect);

个字符

相关问题