Emitrom社はカスタムの業務ソフトウェアアプリケーションサービスを提供する企業であり、Apache Licenceの下Lienzo 1.0 GAをリリースした。LienzoはHTML5 Canvasをバックエンドとして用いたJava向けに構造化グラフィックツールキットを実装したGWTライブラリである。Lienzoは既存のGWTのCanvasサポート(デモ参照)の上に構築されており、リッチアニメーション、ゲーム、イメージ処理などのより高度なJava APIを提供している。
Lienzo 1.0は以下のグラフィック機能を提供している。
- シーンにグループ化された複数のレイヤーを持つViewport
- Viewportのズームとパン
- 複数の基本的なシェイプ(円、線、三角形など)
- シェイプの基本(回転、スケール、移動)及び高度なアフィン変換
- CSS 3 カラーマッピング
- 基本的なテキストとWebフォントのサポート
- イメージレンダリング
- イメージフィルタ(Blurなど)
- 点とベクター
- HTML5ビデオの実験的なサポート
- 画像に現在のCanvasのコンテンツを保存する
- マウスやタッチスクリーンでのイベントハンドリング
- ドラッグ・アンド・ドロップ
- 異なるトゥイーンオプションによるアニメーション
- 国際化サポート
ソースコード付きで多くの(幾つかはアニメーションする)例を確認することができるライブデモがある。
HTML5のCanvas要素はImmediate ModeのGUIを管理する非常に低レベルなメソッドを用いてJavaScriptで記述されるのが一般的である。GWTによって提供される基本的なJava APIはJavaScript上に構築された薄いレイヤーでしかない。そのため、多くの業務開発者にとってはまだ低レベルな状態である。Emitrom社はRetained Modeで管理されるフルScene Graphにこの基本的なAPIを拡張した。これにより上記のような(アニメーションを含む)高度な機能のすべてを実現することが可能になる。
Lienzoは、すでに含まれているシェイプの他に別のシェイプをサポートするように拡張することが可能である。Emitrom社はHTML5 Canvasの低レベルメソッドに直接アクセスする機能を提供するコアContext2Dオブジェクトを提供している。それ故、デフォルトでLienzoには含まれていない機能を開発することも可能であり、また、既存のCanvasから使いたい機能のネイティブのJavaScriptコードをポーティングすることも簡単である。
Emitrom社によって提供される拡張ライブラリを追加することにより、LienzoはAdobe AIRを通じてiOSやデスクトップ上で動作させることが可能である。さらに、Flash4jを用いてクロスプラットフォーム開発も可能になる。
さらなる情報はユーザーマニュアルやJavadocにある。商用のサポートオプションも利用可能である。
Kostis Kapelonis エンタープライズアプリケーションに特化したソフトウェアエンジニア