CSS3 filterプロパティによる画像の調整や効果のまとめ


株式会社コニファ・無料で使えるBtoB WEB受注システム・0万石 WEB受注システム(バナー用3)
無料で使えるBtoB WEB受注システム,0万石受注システム,0円,Free
無料で使えるBtoB WEB受注システム
0万石 WEB受注システム

従来、webで使う画像の調整や効果の追加は、Photoshopなどの画像加工ソフトやJavaScriptなどを利用していましたが、CSS3からはfilterプロパティにより、CSSのみでできるようになりました。

明度・brightness

明度は、brightnessで調整できます。値は、 brightness(0%) で明度無し(黒)、 brightness(100%) で、画像のオリジナルの色になります。サンプルの画像の「brightness:(50%)」はオリジナルよりだいぶ暗くなっています。 brightness:(0.5) と記述しても同様です。また、「brightness:(200%)」のように100%以上にすると、白く飛ばすことができます。

オリジナル filter: brightness(100%)
filter: brightness(50%)
filter: brightness(200%)
.br50 {
	filter: brightness(50%); 
	}
.br200 {
	filter: brightness(200%); 
	}

コントラスト・contrast

コントラストも明度と同様にオリジナルは100%で、「 contrast(100%) 」のように記述します。100%より小さくすると、コントラストがゆるくなりグレーに近づきます。また、100%より大きくすると、きつくなります。

オリジナル filter: contrast(100%)
filter: contrast(0%)
 
filter: contrast(50%)
 
filter: contrast(150%)
.con0 {
	filter: contrast(0%);
	}
.con50 {
	filter: contrast(50%);
	}
.con150 {
	filter: contrast(150%);
	}

彩度・saturate

彩度もコントラストなどと同様にオリジナルは100%で、 saturate(100%) のように記述します。100%より小さくすると、彩度が失われグレーに近づきます。また、100%より大きくすると、派手な色になります。

オリジナル filter: saturate(100%)
filter: saturate(0%)
 
filter: saturate(50%)
 
filter: saturate(200%)
.sat0 {
	filter: saturate(0%);
	}
.sat50 {
	filter: saturate(50%);
	}
.sat200 {
	filter: saturate(200%);
	}

グレイスケール・grayscale

画像をグレイスケールに変換します。オリジナルは0%で、100%に近づくほどモノクロ化が進み、100%で完全にカラー要素が失われモノクロになります。grayscale(100%)の画像は、saturate(0%)の画像とほぼ同じに見えます。

オリジナル filter: grayscale(0%)
filter: grayscale(50%)
 
filter: grayscale(100%)
.gray50 {
	filter: grayscale(50%);
	}
.gray100 {
	filter: grayscale(100%);
	}

セピア・sepia

画像を年代物の写真のようなセピア調に変換します。グレイスケールと同様にオリジナルは0%で、100%に近づくほどセピア調が強まります。

オリジナル filter: sepia(0%)
filter: sepia(50%)
 
filter: sepia(100%)
.sepia50 {
	filter: sepia(50%);
	}
.sepia100 {
	filter: sepia(100%);
	}

諧調反転・invert

画像の諧調を反転します。セピアなどと同様にオリジナルは0%で、50%まではグレー1色に近づいていき、50%でほぼグレー1色になり、50%から100%に近づくほど諧調反転が強まります。
オリジナル filter: invert(0%);
filter: invert(25%)
 
ifilter: nvert(50%);
 
filter: invert(75%);
 
filter: invert(100%);
.inv25 {
	filter: invert(25%);
	}
.inv50 {
	filter: invert(50%);
	}
.inv75 {
	filter: invert(75%);
	}
.inv100 {
	filter: invert(100%);
	}

色相回転・hue-rotate

色相を環状に配置した色相環(hue circle)を使い、指定した角度で時計回りに回転し色相を変更します。

色相環(hue circle)
オリジナル filter: hue-rotate(0deg)
filter: hue-rotate(110deg)
 
filter: hue-rotate(230deg)
.rot110 {
	filter: hue-rotate(110deg);
	}
.rot230 {
	filter: hue-rotate(230deg);
	}

ぼかし・blur

Photoshopなどでよく使われるガウスぼかしです。ぼかし具合はガウスの半径の値をピクセルで指定しますが、画像により異なります。ぼかしをまったくかけないオリジナルは初期値の0になります。

オリジナル filter: blur(0)
filter: blur(3px)
 
filter: blur(8px)
.blur3 {
	filter: blur(3px);
	}
.blur8 {
	filter: blur(8px);
	}

透明度・opacity

画像を透過させます。透明度は%で指定します。オリジナルの画像は opacity(100%) で完全不透明で、0%に近づけるほど透明度は高くなり、0%で完全透明になります。CSSには、別にopacityプロパティが存在しますが、 filter:opacity() のほうが正確な効果になるようです。

オリジナル filter: opacity(100%)
filter: opacity(75%)
 
filter: opacity(50%)
 
opacityプロパティ opacity: 0.5
.opa75 {
	filter: opacity(75%);
	-webkit-filter: opacity(75%);
	}
.opa50 {
	filter: opacity(50%);
	-webkit-filter: opacity(50%);
	}
.opa-p50 {
	opacity: 0.5;
	}

ドロップシャドウ・drop-shadow

CSSには、同様の機能を持った box-shadowプロパティが別にあって、値の指定方法もほぼ同じです(効果にはやや差があるようです)。
filter: box-shadow(x軸方向距離(px) Y軸方向距離(px) ぼかしサイズ(px) 色(色名や色コード))

filter: drop-shadow(4px 4px 10px #000)
filter: drop-shadow(-6px 6px 6px #030)
上と同じ指定をbox-shadowプロパティで
.ds1 {
	filter: drop-shadow(4px 4px 10px #000);
	}
.ds2 {
	filter: drop-shadow(-6px 6px 6px #030);
	}
.bs2 {
	box-shadow:-6px 6px 6px #030;
	}


webで調べると、filterプロパティはかなり古いバージョンのブラウザでも対応しているように書かれているものが多い(ベンダープレフィックスの有無には触れず)のですが、これはベンダープレフィックス付きの場合だと思います。例えば「Google Chrome」はバージョン27以降などとなっていますが、私が試したところによると、Mac版のGoogle Chromeバージョン49では動作せず、ベンダープレフィックス付きならばOKでした。

戻るボタン