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
评论