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

kar*_*uch 8 java javafx canvas

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

canvas.getGraphicsContext2D().setFill(color);
canvas.getGraphicsContext2D().fillRect(x, y, 1, 1);
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*cel 10

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

使用PixelWriter,您可以绘制任何您想要的Pixel:

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

我认为这是仅有Paint像素的最佳方式.

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

在这种情况下,您可以使用 与Canvas相同的方式使用 writableImage.getPixelWriter().

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

也可以看看:

帆布表现

我希望这个答案可以帮到你.