Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
How to crop an image along the X-axis using FabricJS?
In this tutorial, we are going to learn how to crop an image along the x-axis 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 an image along the x-axis, we use the cropX property.
Syntax
new fabric.Image( element: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | String, { cropX: Number }: Object, callback: function)
Parameters
-
element ? This parameter accepts HTMLImageElement, HTMLCanvasElement, HTMLVideoElement or String which denotes the image element. The String should be a URL and would be loaded as an image.
-
options (optional) ? This parameter is an Object which provides additional customizations to our object. Using this parameter origin, stroke width and a lot of other properties can be changed related to the image object of which cropX is a property.
-
callback (optional) ? This parameter is a function which is to be called after eventual filters are applied.
Options Keys
-
cropX ? This property accepts a Number value which denotes the image crop in pixels along the x-axis, from the original image size.
Default Appearance of Image Object
Let's see a code example of how the Image object appears when cropX property is not used. As we can see, there is no image crop along the X-axis.
<!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 there is no image crop along the x-axis</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>
Using the cropX Property
In this example, we have used the cropX property and assigned it a number value of 25. Therefore, the image crop is 25 pixels along the x-axis.
<!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 cropX property</h2>
<p>You can see that there is a 25px image crop along the x-axis</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,
cropX: 25,
});
// Add it to the canvas
canvas.add(image);
</script>
</body>
</html>
Key Points
- The
cropXproperty crops the image from the left side by the specified number of pixels - Cropping happens before any transformations like scaling or rotation are applied
- The value must be a positive number representing pixels to crop
- Use
cropYfor vertical cropping along the y-axis
Conclusion
The cropX property in FabricJS provides an easy way to crop images horizontally from the left side. By setting a pixel value, you can trim unwanted portions of your image before displaying it on the canvas.
