※この記事は「古籏一浩のJavaScriptラボ」の第14回です。過去の記事も合わせてご覧ください。
現在の主要なWebブラウザーには、グラフィックを自由に描画できる「canvas」機能が用意されています(Internet Explorerを除く)。canvasは、W3C(World Wide Web Consortium)で策定が進んでいる「HTML5」に含まれる新しい要素です。HTML5の仕様はまだ正式に決まっていませんが、canvasは仕様策定の早い段階から盛り込まれていたため、すでに多くのブラウザーに実装されています。また、canvasへの対応が遅れているInternet Explorer(IE)でも、「ExplorerCanvas」などのJavaScriptライブラリーを使えば、ある程度の機能をエミュレートできます。
canvasのサンプルでは、円や四角形のような図形を描画するものをよく見かけますが、今回のJavaScriptラボでは、ビットマップ画像をピクセル単位で加工する「画像フィルター」を作成してみましょう。画像フィルターといってもさまざまな種類がありますが、今回は以前作成したPhotoshop用の「赤色強調フィルター」をブラウザー用に移植します。
今回のサンプルは、Opera 9.0以降、Firefox 3.5以降、Safari 4以降、Google Chrome 2以降でのみ動作します。ExplorerCanvasライブラリーはピクセル単位の画像処理をサポートしていませんので、残念ながらIEでは動作しません(ただし、どうしてもIEで動かしたい場合の方法は記事の最後に紹介しています)。
■参考サイト
●Operaのcanvasサポート
http://www.opera.com/docs/specs/opera9/canvas/
●Mozilla Canvasチュートリアル
https://developer.mozilla.org/ja/Canvas_tutorial
https://developer.mozilla.org/ja/Drawing_Graphics_with_Canvas
●Safari Canvas
http://developer.apple.com/mac/library/documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/Canvas.html
●HTML 5 Working Draft
http://www.w3.org/TR/html5/
●HTML 5.jp
http://www.html5.jp/