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 EventHandler() {
@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);
}
}
Hasilnya adalah 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