How to find the object scale factors of an Image using FabricJS?


In this tutorial, we are going to learn how to find the object scale factors of an Image using FabricJS. We can create an Image object by creating an instance of fabric.Image. Since it is one of the basic elements of FabricJS, we can also easily customize it by applying properties like angle, opacity etc. In order to find the object scale factors of an Image, we use the getTotalObjectScaling method.

Syntax

getTotalObjectScaling(): Object 

Using the getTotalObjectScaling method

Example

In this example we have used the getTotalObjectScaling method to get object scale factors for the Image. The logged output in this case is approximately 1.5 for both scaleX and scaleY respectively.

<!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 getTotalObjectScaling method</h2> <p> You can open the console from dev tools to see that the logged output contains the object scale factor </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, skewX: 15, }); // Add it to the canvas canvas.add(image); // Using the getTotalObjectScaling method console.log( "The scale factor of the Image object is: ", image.getTotalObjectScaling() ); </script> </body> </html>

Using the getTotalObjectScaling method along with scaleX property

Example

Let’s see a code example of the logged output when the getTotalObjectScaling method is used along with the scaleX property. Here we have passed the scaleX property a value of 2. Thus, the logged output displays the value of scaleX as approximately 3 while the value for scaleY remains unchanged

<!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 getTotalObjectScaling method along with scaleX property</h2> <p> You can open the console from dev tools to see that the logged output contains the object scale factor </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, skewX: 15, scaleX: 2, }); // Add it to the canvas canvas.add(image); // Using the getTotalObjectScaling method console.log( "The scale factor of the Image object is: ", image.getTotalObjectScaling() ); </script> </body> </html>

Updated on: 27-Oct-2022

360 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements