package catchcolor;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.scene.image.Image;
import java.io.File;
import static javafx.application.Application.launch;
import javafx.scene.image.ImageView;
import javafx.scene.Group;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.shape.*;
import javafx.scene.input.MouseEvent;
public class pro extends Application {
GraphicsContext gc;
int w=500;
int h=500;
int[][] memor=new int[h][w];
int[][] memog=new int[h][w];
int[][] memob=new int[h][w];
int number;
int px,py;
int[] pointx=new int[11];
int[] pointy=new int[11];
Rectangle r;
Circle cir;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
number=0;
r = new Rectangle();
r.setX(600);
r.setY(200);
r.setWidth(50);
r.setHeight(50);
r.setFill(Color.RED);
cir= new Circle();
cir.setCenterX(100);
cir.setCenterY(100);
cir.setRadius(10);
catchimg sub=new catchimg();
sub.makedata("ero.jpg");
memor=sub.memor;
memog=sub.memog;
memob=sub.memob;
Canvas canvas = new Canvas(500,500);
gc = canvas.getGraphicsContext2D();
canvas.setLayoutX(50);
canvas.setLayoutY(50);
gc.setFill(Color.WHITE);
gc.fillRect(0,0,500,600);
int mx,nx;
for(mx=0;mx<h;mx++){
for(nx=0;nx<w;nx++){
Color col = Color.rgb(memor[mx][nx],memog[mx][nx], memob[mx][nx]);
gc.setFill(col);
gc.fillRect(nx,mx,1,1);
}
}
Button btn = new Button("色選択");
btn.setLayoutX(100);
btn.setLayoutY(600);
Button btn2 = new Button("計算");
btn2.setLayoutX(300);
btn2.setLayoutY(600);
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
cir.setCenterX(px+50);
cir.setCenterY(py+50);
number=number+1;
pointx[number]=px;
pointy[number]=py;
Color co;
co=Color.rgb(memor[py][px],memog[py][px], memob[py][px]);
r.setFill(co);
}
});
btn2.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("計算");
}
});
canvas.addEventHandler(MouseEvent.MOUSE_CLICKED,
new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
int x1,y1;
px=(int)e.getX();
py=(int)e.getY();
}
});
Group root = new Group();
Scene scene = new Scene(root, 700, 700);
root.getChildren().add(canvas);
root.getChildren().add(btn);
root.getChildren().add(btn2);
root.getChildren().add(cir);
root.getChildren().add(r);
primaryStage.setTitle("画像処理");
primaryStage.setScene(scene);
primaryStage.show();
}
}
最終更新:2014年04月17日 20:14