This article shows how to create a JSON representation of an image object 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. To create a representation of a JSON Image object, we use the toJSON method.
grammar
toJSON(propertiesToInclude: Array): Object
parameter
-
propertiesToInclude - This parameter accepts an Array containing any properties we may wish to additionally include in the output. This parameter is optional.
Use the toJSON method
example
Take a look at a code example to see the output logged when using the toJSON method. In this case, a JSON representation of the image instance is returned.
<!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 toJSON method</h2>
<p>
You can open console from dev tools and see that the logged output contains the JSON representation of the image instance
</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);
// Using the toJSON method
console.log(
"JSON representation of the Image instance is: ",
image.toJSON()
);
</script>
</body>
</html>
Use the toJSON method to add additional properties
example
Take another look at the code example to see how to use the toJSON method. In this example, we added a custom attribute called "name". We can pass specific property as second parameter in options to fabric.Image instance object and pass the same key to toJSON method.
<!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 toJSON method to add additional properties</h2>
<p>
You can open console from dev tools and see that the logged output contains added property called name
</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 with name key
// passed in options object
var image = new fabric.Image(imageElement, {
top: 50,
left: 110,
name: "Image instance",
});
// Add it to the canvas
canvas.add(image);
// Using the toJSON method
console.log(
"JSON representation of the Image instance is: ",
image.toJSON(["name"])
);
</script>
</body>
</html>