4

我想将一个简单的光栅图形编辑器放入我的 JavaFX 应用程序中。
似乎无法使用javafx.scene.image.Image,因为图形对象是只读的。
有人可以指出我该怎么做,或者也许有一些类可以直接访问像素图?

upd:编辑器不需要快速响应,因此建议 a-la create hidden java.awt.Canvas,处理 ImageView 上的所有事件以在画布上绘制,通过某种方式从画布创建输出流以创建新的 javafx 图像并放置它到 ImageView

4

1 回答 1

13

您可以使用JavaFX 画布来执行此操作,如画布教程“与用户交互”部分所示。你不需要一个java.awt.Canvas.

您可以拍摄画布(或任何其他节点)的快照以创建图像。

您可以使用PixelReader从现有图像读取像素图,并使用从WritableImage获得的PixelWriter写入图像的像素图,如 ImageOps 教程中所示。

要将生成的图像写入磁盘,请将其转换为 BufferedImage并使用ImageIO将其写出。

如果需要,有将图像缩放为像素化形式的示例(类似于 Microsoft Paint 中的缩放功能):JavaFX ImageView without any smoothing

于 2013-04-25T09:25:57.777 回答