Est-il possible de changer, avec les méthodes de filtre CSS comme HueRotate, Saturation et Brightness, la couleur d'un PNG dessiné totalement blanc? Comme l'effet de superposition de couleurs de Photoshop, mais en CSS.
Ce serait une bonne solution pour éviter de créer de nombreuses images qui ne changent que la couleur. Par exemple, un ensemble d'icônes qui ont des versions sombres et claires pour une interface utilisateur.
Vous pouvez également coloriser des images blanches en ajoutant du sépia, puis de la saturation, une rotation de la teinte, par ex. en CSS:
filter: sepia() saturate(10000%) hue-rotate(30deg)
Cela devrait faire de l'image blanche une image verte.
En fait, heureusement, il existe un moyen!
La principale difficulté ici, comme mentionné précédemment, est qu'il n'y a essentiellement aucune couleur dans une image en niveaux de gris. Heureusement, il existe un filtre qui peut pomper dans une certaine couleur!
sepia(100%)
J'ai essayé le style css suivant sur une image en couleur unie, dont la couleur de base est #ccc
sepia(100%) contrast(50%) saturate(500%) hue-rotate(423deg)
J'ai pu changer la couleur de l'image en vert lime.
Profitez ;)
C'est une bonne idée, mais cela ne fonctionnera pas avec une image blanche comme vous le suggérez. Vous pouvez le faire avec une image colorée, mais pas si elle est entièrement blanche. J'ai essayé ce qui suit dans Safari en utilisant la version webkit du filtre CSS:
<div style="background-color:#FFF; -webkit-filter: hue-rotate(90deg); width:100px; height:100px; border:1px solid #000;"></div>
Mais la boîte reste blanche. Si je change la couleur en bleu comme ceci:
<div style="background-color:#00F; -webkit-filter: hue-rotate(90deg); width:100px; height:100px; border:1px solid #000;"></div>
Je reçois une boîte rouge. En effet, le filtre fonctionne sur la valeur de teinte qui n'est pas présente en blanc ou en noir.
Essayez de rendre brightness
supérieur à 100%
. Vous remarquerez que l'image commencera à s'estomper en blanc lorsque vous vous déplacerez plus haut 100%
. L'obscurité d'une image déterminera à quelle distance de 100%
que vous devez déplacer.
img {
-webkit-filter: brightness(1000%);
}
N'oubliez pas que seuls les utilisateurs de Google Canary peuvent voir les filtres CSS3 et que les filtres CSS3 n'affectent pas l'image dans un autre navigateur. (jusqu'à présent au moins).