HueRotate、Saturation、BrightnessなどのCSS Filterメソッドを使用して、完全に白で描画されるPNGの色を変更することは可能ですか? Photoshopのカラーオーバーレイ効果に似ていますが、CSSにあります。
これは、色のみを変更する画像を大量に作成しないようにするための優れたソリューションです。たとえば、UIの暗いバージョンと明るいバージョンのアイコンのセット。
また、セピアを追加し、次に彩度、色相回転、 CSSで:
filter: sepia() saturate(10000%) hue-rotate(30deg)
これにより、白い画像が緑色の画像になります。
これはクールなアイデアですが、提案されているように白い画像では機能しません。色付きの画像でそれを行うことができますが、それがすべて白の場合はできません。 CSSフィルターのwebkitバージョンを使用してSafariで次のことを試しました。
<div style="background-color:#FFF; -webkit-filter: hue-rotate(90deg); width:100px; height:100px; border:1px solid #000;"></div>
しかし、ボックスは白のままです。このように色を青に切り替えると:
<div style="background-color:#00F; -webkit-filter: hue-rotate(90deg); width:100px; height:100px; border:1px solid #000;"></div>
赤い箱を受け取ります。これは、白または黒では存在しない色相値でフィルターが機能するためです。
ありがたいことに方法があります!
前述の主な問題は、グレースケール画像には本質的に色がないことです。ありがたいことに、ある色でポンプできるフィルターがあります!
sepia(100%)
ベースカラーが#ccc
であるソリッドカラーイメージで次のCSSスタイルを試しました
sepia(100%) contrast(50%) saturate(500%) hue-rotate(423deg)
画像の色をライムグリーンに変更することができました。
楽しむ;)
brightness
を100%
より大きくしてみてください。 100%
をさらに上に移動すると、画像が白にフェードし始めます。画像の暗さによって、100%
からどれだけ遠くに移動する必要があるかが決まります。
img {
-webkit-filter: brightness(1000%);
}
Google CanaryユーザーのみがCSS3フィルターを表示でき、CSS3フィルターは他のブラウザーの画像に影響しないことに注意してください。 (したがって、少なくとも)。