2013-04-25 67 views
1

我想將一個簡單的光柵圖形編輯器放入我的JavaFX應用程序中。
看來,它不能使用javafx.scene.image.Image來完成,因爲圖形對象是隻讀的。
有人可以指出我該怎麼做,或者有一些類可以直接訪問像素圖嗎?是否有任何JavaFX圖像編輯器?

UPD:沒有必要爲編輯器迅速做出反應,所以建議一拉創建隱藏java.awt.Canvas,處理上ImageView的所有事件畫在畫布上,一些創造是指從輸出流畫布來創建新的javafx圖像並將其放到ImageView

回答

7

您可以使用JavaFX canvas來執行此操作,如Canvas Tutorial「與用戶交互」部分所示。您不需要java.awt.Canvas

可以採取一個帆布的snapshot(或任何其它節點),以創建一個圖像。

可以從現有的圖像使用PixelReader讀出的像素的地圖,並使用如圖所示的ImageOps tutorialsWritableImage獲得的PixelWriter寫入的圖像的像素圖。

爲了您的最終圖像寫入到磁盤,convert it to a BufferedImage使用ImageIO寫出來。

如果你需要它,有縮放圖像的像素化形式(類似於微軟畫圖變焦功能)的樣本:JavaFX ImageView without any smoothing

+0

是否可以直接在'Canvas'上禁用圖像平滑?我正在開發一個類似的項目,如果可能的話,我想避免隱藏'Canvas'。 'Canvas.setScaleX()'及其變體都創建了消除鋸齒的圖像,我需要爲精靈編輯器顯示清晰的圖像。 – sorbet 2014-03-28 03:27:27

+0

我覺得不是冰糕。我認爲唯一的方法是從畫布上讀取像素,然後編寫自己的縮放邏輯,類似於[JavaFX ImageView,沒有任何平滑](http://stackoverflow.com/questions/16089304/javafx-imageview-而不-任何平滑)。您的問題與原始問題略有不同。我鼓勵你創建一個新問題(鏈接回到這個問題和圖像平滑問題,以幫助答覆者理解問題)。 – jewelsea 2014-03-28 06:27:21