WebKit への CSS フィルタ エフェクトの適用

背景

フィルタ効果は以前から存在していましたが、SVG で動作するように設計されています。画像を合成してドキュメントにレンダリングする前に、画像に色の強さ、歪み、ぼかしなどの効果を適用するのに非常に強力です。

2009 年に Mozilla は、SVG だけでは不十分だと言いました。最終的に、Firefox 3.5 でフィルタをさらに進化させ、HTML コンテンツでの使用を許可しました。再生中の <video> に SVG フィルタを適用した、Paul Irish の時代を超えたデモをご覧ください。Firefox でのみ動作しますが、それでも最高です。

今日

2011 年の終わりに、Adobe をはじめとする企業がこの素晴らしい技術を CSS に導入するために懸命に取り組んでいました。具体的には、WebKit で実装が開始された CSS フィルタ効果 1.0 です。

CSS でフィルタを直接有効にすると、ほぼすべての DOM 要素でフィルタを利用できます。画像、<video><canvas> など。

CSS フィルタ効果のデモ。

将来

この仕様では、CSS シェーダーも定義されています。これにより、最終的には OpenGL シェーダー テクノロジーが CSS に導入される予定です。とても楽しみですね。ただし、システムの GPU を開く際には、セキュリティ上の考慮事項があります。そのため、WebKit では現時点では CSS フィルタ関数のみを実装しています。

サポート

Chrome 18.0.976.0(現在は Canary)、WebKit ナイトリー

Webkit ナイトリー版では、ハードウェア アクセラレーションされたコンテンツ(img { -webkit-transform: translateZ(0); } など)にフィルタを適用できます。Chrome では、アクセラレーションされたコンテンツのフィルタはまだ開発中です(--enable-accelerated-filters フラグを使用)。これには、デフォルトで高速化される <video> が含まれます。