javafx canvas_教程:JavaFX的Canvas API概览

javafx canvas

Carl Dea出现在11月的《 JAX杂志》上 ,使用Java的富客户端技术JavaFX花费了几个小时。

我最近参加了 去年 10月 Oracle 主办 JavaOne 2012会议 我的主要目标是将精力集中在与客户端Java有关的所有事情上,即使会话的标题中不包含“ JavaFX”。 令我惊讶的是,我收到的收益远远超出了讨价还价。 我参加了涉及 Dolphin Griffon Java Embedded JavaFX 8等 技术的会议

我不禁为新的 JavaFX 8的3D API 感到垂涎三尺 但是, 我的 另一项 意图是查看 JavaFX 2.2 当前 版本 中添加的许多新功能 特别是,想到的一项功能是备受期待的Canvas API。 在本文中,您将了解使用JavaFX的 Canvas API 时的一些性能特征 ,稍后,我将分享一些代码,并教您如何仅在JavaFX的场景图上使用Canvas API而不是基于矢量来构建动画时钟。对应版本(JavaFX 2.1和更早版本)。

在JavaOne 2012大会上的许多JavaFX会议中,特别 引人注目的一届 Richard Bair的 CON6784 – JavaFX图形技巧和窍门 )。 JavaFX架构师Bair先生与流行的桌面操作系统(Windows,Linux / Ubuntu和Mac OS X)上的所有主要浏览器相比,讨论了JavaFX 2和JavaFX 8的图形渲染性能。 基准测试结果(遵循 GUIMark 2 )按“矢量”和“位图”图形渲染策略分类。 大多数HTML5 Web开发人员都熟悉,使用“矢量”呈现策略只是 SVG (可缩放矢量图形的XML表示)的 同义词 除此之外,“位图”呈现策略等效于使用流行的 HTML5 Canvas API( 使用JavaScript语言)的使用

当涉及矢量渲染策略时,性能数据表明JavaFX在Mac OS X上的Safari浏览器除外,其表现优于所有竞争对手。类似地,当涉及位图渲染策略时,性能指标表明JavaFX Canvas API的性能优于所有的浏览器。 Bair先生在解释何时,为什么以及如何在两种渲染策略之间进行选择方面做得非常出色。 Bair先生还指出,在某些情况下,JavaFX矢量图形甚至可以胜过JavaFX画布。 他还建议,当使用一种技术而不是另一种技术时,真正获得更准确图片的唯一方法是分析应用程序。 当然,他的演讲中讨论了更多内容。 但是,在本文中,我仅希望指出与Canvas API有关的信息。

在JavaFX的世界中,场景图主要基于“矢量”渲染策略,该策略将形状和路径计算为易于缩放的场景图节点。 对于那些回想起JavaFX 2.2之前的开发人员,您会记得何时没有能力处理位图图形(像素推送)。 您可能想知道,“如何使用“位图”策略在基于JavaFX矢量的场景图上进行渲染?” 自JavaFX 2.2发布以来,JavaFX团队创建了Canvas API。 Canvas API实际上是一个称为 Canvas 的JavaFX节点 由于 Canvas 类是从 javafx.scene.Node 类扩展的 ,因此它基本上是一个场景图节点,与任何其他JavaFX节点一样,除了您可以使用图形基元(Canvas API)直接在表面上绘制和操纵像素数据( GraphicsContext), )。

要在画布上绘制,必须首先实例化 具有宽度和高度 画布 节点。 实例化 Canvas 类后,您将需要获取其 Grap

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Canvas APIJavaFX中用于绘制图形的一个强大的工具,它可以让你以像素为单位绘制形状、线条、文本和图像,并且可以使用不同的绘图属性来控制渲染。如果你想要清晰地绘制图形,那么使用Canvas API可以让你轻松实现。 以下是使用Canvas API进行清晰绘图的几个技巧: 1. 使用高分辨率的Canvas 在创建Canvas对象时,可以指定它的宽度和高度。如果你需要绘制的图形很复杂,或者需要绘制的图形比较大,那么可以使用高分辨率的Canvas来保证图形的清晰度。例如,如果你需要绘制一个1000x1000像素的图形,那么可以这样创建Canvas对象: ``` Canvas canvas = new Canvas(1000, 1000); ``` 2. 使用反锯齿 反锯齿可以让图形的边缘更加平滑,从而使图形看起来更加清晰。你可以通过设置Canvas对象的antiAliasing属性来启用反锯齿: ``` canvas.setAntiAliasing(true); ``` 3. 使用线性插值 线性插值可以让图形的颜色更加平滑,从而使图形看起来更加清晰。你可以通过设置Canvas对象的interpolation属性来启用线性插值: ``` canvas.setInterpolation(Interpolation.LINEAR); ``` 4. 使用高质量的渲染模式 Canvas API支持多种渲染模式,包括DEFAULT、QUALITY和SPEED。QUALITY模式可以提供最高质量的渲染,从而使图形看起来更加清晰。你可以通过设置Canvas对象的rendering属性来启用高质量的渲染模式: ``` canvas.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); ``` 使用这些技巧可以让你轻松实现清晰的绘图效果,并且可以为你的应用程序增加一些视觉上的吸引力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值