To save an image with CSS filters applied on the client-side, follow these steps:
However, the image will be saved without effects if the context filter property is not supported. To address this:
This example applies a sepia filter to an image using the filter property. If not supported, it would use a fallback (not shown).
var img = new Image(); img.crossOrigin = ""; img.onload = draw; img.src = "//i.imgur.com/WblO1jx.jpg"; function draw() { var canvas = document.querySelector("canvas"), ctx = canvas.getContext("2d"); canvas.width = this.width; canvas.height = this.height; // filter if (typeof ctx.filter === "undefined") { ctx.filter = "sepia(0.8)"; ctx.drawImage(this, 0, 0); } else { ctx.drawImage(this, 0, 0); // TODO: manually apply filter here. } document.querySelector("img").src = canvas.toDataURL(); }
Remember, CSS filters only apply to the elements' appearance, not the actual bitmap data. To apply actual filters, work with the bitmap at pixel level if the filter property is not available.
The above is the detailed content of How Can I Save an Image with CSS Filters Applied on the Canvas Without a Server?. For more information, please follow other related articles on the PHP Chinese website!