package fjr.test.testIO; import java.io.File; import javafx.application.Application; import javafx.embed.swing.SwingFXUtils; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.*; import javafx.scene.image.*; import javafx.scene.input.MouseEvent; import javafx.scene.layout.HBox; import javafx.stage.*; import javax.imageio.ImageIO; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.control.Button; import javafx.scene.paint.Color; public class PrintCanvas extends Application { GraphicsContext gc; Canvas canvas; double canvaswidth = 300 , canvasheight = 350 ; @Override public void start(Stage primaryStage) { Group root = new Group(); Scene scene = new Scene(root, 400, 450); canvas = new Canvas(canvaswidth, canvasheight); canvas.setTranslateX(10); canvas.setTranslateY(50); gc = canvas.getGraphicsContext2D(); gc.setLineWidth(23); gc.setFill(Color.GREEN); gc.setStroke(Color.BLUE); gc.setLineWidth(6); gc.strokeRect(0, 0, canvaswidth, canvasheight); gc.setStroke(Color.BLACK); final WritableImage wim = new WritableImage((int)canvaswidth, (int)canvasheight); root.getChildren().add(canvas); primaryStage.setScene(scene); primaryStage.show(); final Button simpan = new Button(); simpan.setTranslateX(10); simpan.setTranslateY(10); simpan.setPrefSize(100, 30); simpan.setText("SIMPAN"); simpan.setOnAction(new EventHandlerHasilnya adalah() { @Override public void handle(ActionEvent arg0) { canvas.snapshot(null, wim); File file = new File("E:/CanvasImage.png"); try { ImageIO.write(SwingFXUtils.fromFXImage(wim, null), "png", file); System.out.println("File sudah disimpan"); } catch (Exception s) { } } }); root.getChildren().add(new HBox(){{ getChildren().add(simpan); }}); canvas.addEventHandler(MouseEvent.MOUSE_DRAGGED, new EventHandler () { @Override public void handle(MouseEvent e) { gc.lineTo(e.getX(), e.getY()); gc.stroke(); } }); canvas.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler () { @Override public void handle(MouseEvent e) { gc.beginPath(); gc.moveTo(e.getX(), e.getY()); gc.stroke(); } }); } public static void main(String[] args) { launch(args); } }
Sesungguhnya shalat itu mencegah dari (perbuatan-perbuatan) keji dan mungkar
Q.S. Al-'Ankabut Ayat 45
Wednesday, January 8, 2014
Menyimpan gambar di canvas ke file di javaFX
Berikut ini saya berikan contoh bagaimana menyimpan hasil penggambaran free-form kita dalam javaFx canvas ke dalam file.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment