Pour enregistrer une image avec des filtres CSS appliqués côté client, suivez ces étapes :
Cependant, l'image sera enregistrée sans effets si la propriété de filtre contextuel n'est pas prise en charge. Pour résoudre ce problème :
Cet exemple applique un filtre sépia à une image à l'aide de la propriété filter. S'il n'est pas pris en charge, il utilisera une solution de secours (non illustrée).
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(); }
N'oubliez pas que les filtres CSS s'appliquent uniquement à l'apparence des éléments, et non aux données bitmap réelles. Pour appliquer des filtres réels, travaillez avec le bitmap au niveau des pixels si la propriété de filtre n'est pas disponible.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!