2014-01-18 60 views
2

我正在將一些圖形從java/Android渲染到標準java。JavaFX and antialias

我面臨的第一件事是 - 使用哪種圖形api,Graphics2D或JavaFX。 它是由我在前一個問題「Porting graphics drawing from android to standard java」中的assylias提出的,我使用JavaFX。

我已經看到,與Android一樣,這樣做的好處是可以將雙打和浮點作爲繪製參數。 但是,我一直無法找到任何確認圖形反鋸齒的內容,或者可以打開抗鋸齒功能。

我的目標是生成一個高質量的圖像,它將直接保存到磁盤並且不會顯示在應用程序中。它將顯示在另一個上下文中,而不是打印。 我需要繪製文本,路徑,貝塞爾,線條,橢圓和矩形。

挖掘JavaFX值得我值得嗎?或者我別無選擇,只能使用Graphics2D?

+1

看起來JavaFX'Shape'類具有['smooth'](http://docs.oracle.com/javafx/2/api/javafx/scene/shape/Shape.html#smoothProperty)屬性(with相應的'isSmooth'和'setSmooth'方法),它由所有Shape子類繼承,包括'javax.scene.text.Text'。 – VGR

回答

2

在JavaFX應用程序中繪製的許多對象(如果不是全部的話)已經具有抗鋸齒效果。這是肉眼可見的。嘗試編寫兩個相同的應用程序,一個使用JavaFX,另一個使用Swing(不具有Graphics和RenderingHints對象的抗鋸齒效果)。差別很明顯,尤其是繪製幾何圖形和文本時。 Here你可以找到Swing和JavaFX之間的一些比較,你可以更好地瞭解JavaFX 2.X(閱讀主題「圖形系統」和「媒體和圖像」)。

個人而言,我更喜歡使用JavaFX技術。我以前使用過很多Swing。我的每個應用程序都必須在Swing中製作。但是,在看到JavaFX的實用性,可維護性,優雅性和生產力之後,我沒有多想。即使你只是想繪製簡單的東西,JavaFX似乎也有更好的表現。如果我沒有弄錯,JavaFX是在考慮到平臺上視頻硬件的使用的情況下開發的,並且受到了Java用戶着名的遊戲引擎的啓發,這些引擎可以處理高處理視覺效果,屏幕更新,以及許多其他事情。

爲了讓您驚歎於放入的技術和精力,請求您,訪問this地址。查找名爲Ensemble的JavaFX程序的下載。您會發現在哪裏寫入了「JDK 7和JavaFX演示和示例」。點擊下載並使用演示程序Ensemble。

有關繪製文本,幾何形狀和材料的信息,請訪問以下鏈接:

http://java.dzone.com/articles/javafx-21-beta-improved-font

http://fxexperience.com/2012/01/lcd-text-support-in-javafx-2-1-developer-preview/(從以前的鏈接替代)

http://docs.oracle.com/javafx/2/text/jfxpub-text.htm(查找「設置LCD文本支持「,並且還具有對文本和各種JavaFX應用效果的功能,您仍然可以改進向用戶顯示內容的可視化。)

http://docs.oracle.com/javafx/2/api/javafx/scene/shape/Shape.html#smoothProperty(「形狀部分」)

想要同事的意見嗎?在2.X或更高版本中採用JavaFX(不要使用JavaFX 1.X)。隨着時間的推移,這種技術將會成熟。 Much還在前面。 JavaFX的下一次更新,我們將擁有許多不錯的功能。並注意到JavaFX仍然在其版本2.X中。在不久的將來,Swing圖書館可能會被忽略,就像AWT一樣。你最好現在就開始學習JavaFX,而不是隻在將來你纔會熟悉自己。市場在那裏。

如果您還有問題,請回來詢問。我們會在這裏。 :)

祝你好運。