JavaFX中填充速度最快的一个像素

时间:2015-02-09 19:22:53

标签: java canvas javafx

我在JavaFX库中使用canvas。我需要尽可能快地绘制许多像素。我执行这个:

canvas.getGraphicsContext2D().setFill(color);
canvas.getGraphicsContext2D().fillRect(x, y, 1, 1);

我想这很慢。我可以用更快的方式吗?也许我应该使用另一种方式/方法来填充一个像素?

1 个答案:

答案 0 :(得分:10)

您可以使用Image中的PixelWriter。 正如@jewelsea所说,使用canvas.getGraphicsContext2D().getPixelWriter()

使用PixelWriter,您可以绘制所需的任何像素:

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

我认为这是仅使用Paint像素的最佳方式。

您也可以放弃Canvas并使用带有WriteAbleImage的ImageView。

在这种情况下,您可以使用 writableImage.getPixelWriter() 与Canvas一样。

如果这仍然很慢,你可以在后台线程中执行pixelWriter.setColor(..),这样应用程序就不会停止。

另见:

canvas performance

我希望这个答案可以帮助你。