JavaFX

2015-02-09 38 views
5

için en hızlı dolgu bir pikseldir. Tuvali JavaFX kitaplığında kullanırım. Mümkün olduğunca hızlı bir şekilde birçok piksel çizmem gerekiyor. Bunu yürütüyorum: Bu çok yavaş olduğunu varsayalım. Daha hızlı bir yol kullanabilir miyim? Belki bir pikseli doldurmak için başka bir yöntem/yöntem kullanmalı mıyım?JavaFX

+0

Sadece tuval üzerinde piksel mi çiziyorsunuz yoksa başka tuval API'ları kullanıyor musunuz? – jewelsea

+0

Varsayılan tuvali kullanıyorum: javafx.scene.canvas.Canvas' – karoluch

+0

Tuvali kullandığınızı biliyorum, ancak yapmalıyım diye çalışıyorum. Tek yapmanız gereken, pikselleri işlemekse, bir tuvale ihtiyacınız yoktur, bir WritableImage yeterli olur ve muhtemelen daha iyi performans gösterir. Tuvalde çizgiler çizme gibi başka şeyler yapıyorsanız, bir tuvale ihtiyacınız var. – jewelsea

cevap

7

PixelWriter'i bir Görüntü'den kullanabilirsiniz. @jewelsea herhangi Pixel boyayabilirsiniz PixelWriter ile kullanım canvas.getGraphicsContext2D().getPixelWriter()

istediğiniz dediği gibi:

pixelWriter.setColor(int x, int y,Color c)

Bu sadece piksel Boya için en iyi yol olduğunu düşünüyorum.

Ayrıca Tuval'ten de vazgeçebilir ve içinde bir WriteAbleImage bulunan bir ImageView kullanabilirsiniz. Bu durumda, writableImage.getPixelWriter() , Tuval ile aynı şekilde kullanabilirsiniz.

Bu işlem hala yavaşsa, pixelWriter.setColor (..) öğesini arka planda bir Uygulama iş parçacığı içinde Çalıştırın, böylece Uygulama durmaz.

Ayrıca bakınız:

canvas performance

Bu cevap size yardımcı olur umarım.