Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any JavaFX Image editor?

I want to put a simple raster graphics editor into my JavaFX app.
It seems that it can't be done using javafx.scene.image.Image because the graphics object is read-only.
Can somebody point me how can I do this or maybe there are some classes that provide direct access to pixel map?

upd: it is not necessary for editor to respond quickly, so the suggestions a-la create hidden java.awt.Canvas, handle all the events on ImageView to draw on the canvas, create by some means an output stream from the canvas to create new javafx Image and put it to ImageView.

like image 305
Chechulin Avatar asked Dec 12 '22 15:12

Chechulin


1 Answers

You can use a JavaFX canvas to do this as shown in the Canvas Tutorial "Interacting with the User" section. You don't need a java.awt.Canvas.

You can take a snapshot of a canvas (or any other node) to create an image.

You can read a pixel map from an existing image using a PixelReader and write to an image's pixel map using a PixelWriter obtained from a WritableImage as shown in the ImageOps tutorials.

To write your resultant image to disk, convert it to a BufferedImage and write it out using ImageIO.

If you need it, there are samples of scaling images to a pixelated form (similar to the zoom function in Microsoft Paint): JavaFX ImageView without any smoothing.

like image 129
jewelsea Avatar answered Dec 28 '22 09:12

jewelsea