java - JavaFX中最快的填充一个像素

标签 java canvas javafx

我在 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(..) 这样应用程序就不会停止。

另见:

canvas performance

希望这个回答对你有帮助。

关于java - JavaFX中最快的填充一个像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417623/

相关文章:

Java 生成目录但不生成文件

java - 使用 void 参数

javascript - 使用 Javascript lineTo 绘制箭头

javascript - 无法从数据 Uri 绘制到 HTML 5 Canvas

java - 应用程序启动方法中出现异常。 OpenJFX 13 与 Maven

JavaFX 坐标困惑

java - 任何用于将 Java/Android 中的原始图像(如 DNG)转换为 JPG 格式的 API 或代码

java - Jacoco gradle 离线检测问题

javascript - 消失的对象 - Three.js CanvasRenderer

java - 使用滚动 Pane javafX 时出现空指针异常