我在 JavaFX 库中使用 Canvas 。我需要尽可能快地绘制许多像素。我执行这个:
canvas.getGraphicsContext2D().setFill(color);
canvas.getGraphicsContext2D().fillRect(x, y, 1, 1);
我想它很慢。我可以使用更快的方法吗?也许我应该使用另一种方式/方法来填充一个像素?
最佳答案
您可以使用图像中的 PixelWriter。 正如@jewelsea 所说,使用 canvas.getGraphicsContext2D().getPixelWriter()
使用 PixelWriter,您可以绘制任何您想要的像素:
pixelWriter.setColor(int x, int y,Color c)
我认为这是仅绘制像素的最佳方式。
您也可以放弃 Canvas 并使用其中包含 WriteAbleImage 的 ImageView。
在这种情况下你可以使用 writableImage.getPixelWriter() 与 Canvas 相同。
如果这仍然很慢,您可以在后台线程中执行 pixelWriter.setColor(..) 这样应用程序就不会停止。
另见:
希望这个回答对你有帮助。
关于java - JavaFX中最快的填充一个像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417623/