Lienzo 1.0:HTML5 Canvas元素的Java版本场景图API
Emitrom是一家提供企业软件应用定制服务的公司,最近基于Apache 许可证发布了Lienzo 1.0稳定版本。Lienzo是个GWT库,它是以HTML5 Canvas为后端,用Java实现的结构化图形工具包。Lienzo构建在现有的GWT的Canvas支持之上(查看演示),通过提供一套更高级的Java API,以适应丰富动画,游戏,图片处理等。
\Lienzo 1.0提供了以下图像功能:
\- 窗口可以有多个图层,这些图层可组合成场景\
- 窗口支持缩放和移动\
- 多个基本图形(圆,线,三角形等)\
- 基本的(旋转,缩放,移动)/高级的/仿真的图形变换\
- CSS 3颜色映射\
- 基本的文本和Web字体支持\
- 图片渲染\
- 图片过滤器(例如,模糊)\
- 点和矢量图形\
- HTML5视频实验支持\
- 将当前Canvas内容另存为图片\
- 鼠标及触摸屏的事件处理\
- 拖放\
- 带有不同渐变选项的动画\
- 国际化支持\
有个在线demo展示了几个示例(还有一些动画)以及他们的源码。
\HTML 5中Canvas元素通常在JavaScript中通过一套低级的接口以immediate模式管理GUI。GWT提供的基本Java API只是在JavaScript API之上做了层简单封装,所以对于大多数企业开发人员来说这还是低级的接口。Emitrom将基本API扩展成以retained模式管理的完整场景图。这使得上述所有高级特性成为可能(例如动画)。
\还能够扩展Lienzo以支持未包含的其他图形。Emitrom还暴露了核心的Context2D对象,它可直接访问HTML 5 Canvas元素的低级接口。对于那些需要这项能力的人来说,这使得开发Lienzo中默认不具备的功能,甚至从现有的Canvas应用种移植原生的JavaScript代码都成为可能。
\最后,通过添加Emitrom提供的额外的库,Lienzo也能在iOS上运行,通过Adobe Air还能够在桌面)上运行,Flash4j的引入进一步增强了跨平台开发的构想。
\更多信息,请阅读用户手册以及Javadoc。他们还提供了商业支持。
\查看英文原文:Lienzo 1.0: A Scene Graph API In Java For The HTML5 Canvas