【问题标题】:Is there any JavaFX Image editor?有没有 JavaFX 图像编辑器?
【发布时间】:2013-04-19 00:55:19
【问题描述】:

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

upd: 编辑器不需要快速响应,所以建议 a-la create hidden java.awt.Canvas,处理 ImageView 上的所有事件以在画布上绘制,创建以某种方式从画布输出流来创建新的 javafx Image 并将其放入 ImageView

【问题讨论】:

    标签: image javafx-2 image-editing


    【解决方案1】:

    您可以使用JavaFX canvas 执行此操作,如Canvas Tutorial“与用户交互”部分所示。你不需要java.awt.Canvas

    您可以使用画布(或任何其他节点)的snapshot 来创建图像。

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

    要将生成的图像写入磁盘,convert it to a BufferedImage 并使用ImageIO 将其写出。

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

    【讨论】:

    • 是否可以直接在Canvas 上禁用图像平滑?我正在做一个类似的项目,如果可能的话,我想避免隐藏CanvasCanvas.setScaleX() 及其变体都创建了抗锯齿图像,我需要在其中为精灵编辑器显示清晰的图像。
    • 我觉得不是冰糕。我认为唯一的方法是从画布中读取像素,并编写自己的缩放逻辑,类似于JavaFX ImageView without any smoothing。您的问题与原始问题略有不同。我鼓励您创建一个新问题(链接回此问题和图像平滑问题,以帮助回答者理解问题)。
    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 2013-05-29
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多