Fabric.js Image dirty Property

In this article, when we set the dirty property to true then the object cache will be rerendered next render call to canvas Image using FabricJS. The canvas Image means the Image is movable and can be stretched according to requirement. Further, the Image can be customized when it comes to initial stroke color, height, width, fill color, or stroke width.

To make it possible, we are going to use a JavaScript library called FabricJS. After importing the library, we will create a canvas block in the body tag which will contain the Image. After this, we will initialize instances of Canvas and Image provided by FabricJS and set the dirty property of canvas Image and it will render the Image on the Canvas as given in the below example.

Syntax:

fabric.Image(image, {
     dirty : boolean
});

Parameters: This property accepts a single parameter as mentioned above and described below:

  • dirty: It specifies the object cache will be rerendered next render call or not.

Example: This example uses FabricJS to set the dirty property of the canvas image as shown in the below example:

HTML




<!DOCTYPE html> 
<html
  
<head
    <!-- Adding the FabricJS library -->
    <script src
"https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2/fabric.min.js"
    </script
</head
  
<body
    <h1 style="color: green;"
        w3wiki 
    </h1
  
    <b
        Fabric.js | Image dirty Property 
    </b
      
    <canvas id="canvas" width="400" height="300"
        style="border:2px solid #000000"
    </canvas
  
    <img src
"https://media.w3wiki.net/wp-content/uploads/20200327230544/g4gicon.png"
        width="100" height="100" id="my-image"
        style="display: none;"
    <br
  
    <script
  
        // Creating the instance of canvas object 
        var canvas = new fabric.Canvas("canvas"); 
  
        // Getting the image 
        var img = document.getElementById('my-image'); 
  
        // Creating the image instance 
        var Beginner = new fabric.Image(img, {
            dirty : false
        }); 
  
        canvas.add(Beginner); 
        canvas.centerObject(Beginner); 
    </script
</body
  
</html>


Output: