L'application de filtres CSS aux images côté client peut améliorer leur attrait visuel. Cependant, enregistrer directement ces images filtrées peut être difficile sans utiliser un backend côté serveur.
1. Créer le contexte du canevas :
2. Dessinez l'image originale :
3. Appliquer des filtres CSS :
4. Obtenez les données d'image filtrées :
5. Enregistrez ou affichez l'image filtrée :
Problème : L'image est enregistrée sans aucun filters.
Solution : Vérifiez l'existence de la propriété ctx.filter. S'il est pris en charge, appliquez le filtre CSS directement au contexte. Si elle n'est pas disponible, fournissez une solution de secours pour appliquer manuellement les filtres.
La propriété ctx.filter ne fait pas partie de la spécification officielle HTML Canvas 2D mais est disponible dans Firefox et d'autres navigateurs pris en charge. . Certains filtres peuvent également ne pas être pris en charge par tous les navigateurs. Reportez-vous à la dernière documentation sur la compatibilité du navigateur pour plus de détails.
L'extrait de code suivant illustre le processus :
var canvas = document.getElementById("myCanvas"), ctx = canvas.getContext("2d"), img = document.getElementById("image1"); ctx.drawImage(img, 0, 0, canvas.width, canvas.height); var filterVal = "grayscale(0.5) blur(5px) brightness(110%)"; if (typeof ctx.filter !== "undefined") { ctx.filter = filterVal; ctx.drawImage(img, 0, 0); } else { // TODO: Manually apply filters } var data = canvas.toDataURL("image/png"); localStorage.setItem("filteredImage", data);
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!