首页 > 文章列表 > 如何使用 FabricJS 为图像添加图像平滑?

如何使用 FabricJS 为图像添加图像平滑?

465 2023-09-16

在本教程中,我们将展示如何为图像添加图像平滑 使用 FabricJS。平滑给图像带来平滑的效果。我们可以创建一个图像 通过创建fabric.Image实例来创建对象。因为它是基本要素之一 FabricJS,我们还可以通过应用角度、不透明度等属性轻松定制它。 为了添加图像平滑,我们使用 imageSmoothing 属性。

语法

new fabric.Image( element: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | String, { imageSmoothing: Boolean }: Object, callback: function)

参数

  • element - 此参数接受表示图像的 HTMLImageElement、HTMLCanvasElement、HTMLVideoElementString元素。该字符串应该是一个 URL,并将作为图像加载。

  • 选项(可选) - 此参数是一个对象,它为我们的对象提供额外的自定义。使用此参数,可以更改与 imageSmoothing 为属性的图像对象相关的原点、描边宽度和许多其他属性。

  • 回调(可选) - 此参数是在应用最终过滤器后调用的函数。

选项键

  • imageSmoothing - 此属性接受一个 Boolean 值,表示 画布在绘制图像时是否使用图像平滑。它是 默认值为 true。

图像对象的默认外观

示例

让我们看一个代码示例,了解当 imageSmoothing 时 Image 对象如何出现 属性没有被使用。在这种情况下,将使用默认值,即 true,因此 画布将使用图像平滑。

<!DOCTYPE html>
<html>
<head>
   <!-- Adding the Fabric JS Library-->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
   <h2>Default appearance of Image object</h2>
   <p>You can see that image smoothing has been applied by default</p>
   <canvas id="canvas"></canvas>
   <img src="https://www.tutorialspoint.com/images/logo.png" id="img1" style="display: none" />
   <script>
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas");
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);
      
      // Initiating the image element
      var imageElement = document.getElementById("img1");
      
      // Initiate an Image object
      var image = new fabric.Image(imageElement, {
         top: 50,
         left: 110,
      });
      
      // Add it to the canvas
      canvas.add(image);
   </script>
</body>
</html>

使用imageSmoothing属性并向其传递一个 false 值

示例

在此示例中,我们使用了 imageSmoothing 属性并为其指定了 false 价值。因此,画布将不再使用图像平滑来绘制图像。

<!DOCTYPE html>
<html>
<head>
   <!-- Adding the Fabric JS Library-->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
   <h2>Using the imageSmoothing property and passing it a false value</h2>
   <p>You can see that image smoothing is no longer functioning</p>
   <canvas id="canvas"></canvas>
   <img src="https://www.tutorialspoint.com/images/logo.png" id="img1" style="display: none" />
   <script>
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas");
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);
      
      // Initiating the image element
      var imageElement = document.getElementById("img1");
      
      // Initiate an Image object
      var image = new fabric.Image(imageElement, {
         top: 50,
         left: 110,
         imageSmoothing: false,
      });
      
      // Add it to the canvas
      canvas.add(image);
   </script>
</body>
</html>

结论

在本教程中,我们使用两个示例来演示如何为 使用 FabricJS 的图像