

There are libraries like fabric.js that offer rich APIs.Īpart from the above two reasons, in almost all cases, you would want to get the resized images from the backend itself so that client doesn't have to deal with heavy processing tasks. Image manipulation in JavaScript is done using the canvas element. Imagine this with operations like undo/redo and complex text and image overlays. If a user is manipulating a heavy image, it will take a lot of time to download transformed images from the server.

The speed is critical for the user in these editors.

