How to crop the width in a cloned image using FabricJS?


In this tutorial, we are going to learn how to crop the width in a cloned 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 crop the width in a cloned image, we use the width property

Syntax

cloneAsImage( callback: function, { width: Number}: Object): fabric.Object

Parameters

  • callback (optional) − This parameter is a function which is to be invoked with a cloned image instance as the first argument.

  • options (optional) − This parameter is an optional Object which provides additional customizations to our clone image. Using this parameter we can set a multiplier, crop the clone image, remove the current object transform or a lot of other properties can be changed of which width is a property.

Options Keys

  • width − This property accepts a Number value which denotes the cropping width. This property is optional.

Without using the width property

Example

Let’s see a code example of how the cloned Image object appears when the width property is not used. In this case, the cloned image will not be cropped.

<!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>Without using the width property</h2> <p>You can see that no cropping has been applied to the clone image</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 a shadow object var shadow = new fabric.Shadow({ color: "#308080", blur: 3, }); // Initiate an Image object var image = new fabric.Image(imageElement, { top: 50, left: 110, skewX: 20, shadow: shadow, }); // Using cloneAsImage method image.cloneAsImage(function(Img) { Img.set("top", 150); canvas.add(Img); }); </script> </body> </html>

Using the width property

Example

In this example, we have used the width property and passed it a value 245 which is the cropping width. Therefore, that width will be cropped.

<!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 width property</h2> <p>You can see that cropping has been applied to the clone image</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 a shadow object var shadow = new fabric.Shadow({ color: "#308080", blur: 3, }); // Initiate an Image object var image = new fabric.Image(imageElement, { top: 50, left: 110, skewX: 20, shadow: shadow, }); // Using cloneAsImage method image.cloneAsImage( function(Img) { Img.set("top", 150); Img.set("left", 150); canvas.add(Img); }, { width: 245, } ); </script> </body> </html>

Updated on: 27-Oct-2022

171 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements