アットウィキロゴ

p88

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.input.MouseEvent;
 
public class pro extends Application {
 
 GraphicsContext gc;    
 int w=1300;
int h=700;          
int[][] memor=new int[h][w]; 
int[][] memog=new int[h][w]; 
int[][] memob=new int[h][w];  
int number;
int[] x=new int[10];
int[] y=new int[10];
 
 
    public static void main(String[] args) {
        launch(args);
    }
 
 
 
    @Override
    public void start(Stage primaryStage) {
 
 
       number=0;
 
 
catchimg sub=new catchimg();
 sub.makedata("2.jpg");
    memor=sub.memor;
    memog=sub.memog;
    memob=sub.memob; 
 
 
  Canvas canvas = new Canvas(1300,700);
  gc = canvas.getGraphicsContext2D();
canvas.setLayoutX(50);
canvas.setLayoutY(0);
 
 
 
 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);
                   }
                }
 
canvas.addEventHandler(MouseEvent.MOUSE_CLICKED, 
       new EventHandler<MouseEvent>() {
           @Override
           public void handle(MouseEvent e) {
 
               int x1,y1;
 
               x1=(int)e.getX();
               y1=(int)e.getY();
 
              gc.setFill(Color.RED);
gc.fillRect(x1,y1,5,5);
 
number=number+1;
 
x[number]=x1;
y[number]=y1;
 
System.out.println(number);
 
 
}
       });
 
 
 
 
 
 
 
 Button btn = new Button();
        btn.setText("決定");
        btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
 
           graph sub2=new graph();
           sub2.memor=memor;
           sub2.memog=memog;
           sub2.memob=memob;
           sub2.x=x;
           sub2.y=y;
           sub2.makedata();
 
 
            }
        });
btn.setLayoutX(10);
btn.setLayoutY(100);
 
 
 
       Group root = new Group();
Scene scene = new Scene(root, 1500, 700);    
 root.getChildren().add(btn);
        root.getChildren().add(canvas);
 
        primaryStage.setTitle("画像処理");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
 
 
}
 
 
 
 
package catchcolor;
 
import java.awt.*; 
import java.awt.Color;   
import java.awt.image.*;   
import java.awt.image.BufferedImage;   
import java.io.*;   
import javax.imageio.ImageIO;   
import java.awt.Polygon;
 
 
public class graph{
 
 int w=1300;
int h=700;          
int[][] memor=new int[h][w]; 
int[][] memog=new int[h][w]; 
int[][] memob=new int[h][w]; 
    int[] x=new int[10];
int[] y=new int[10];
 
    void makedata(){
 
 
 
int x1=x[1];
int y1=y[1]; 
int x2=x[2];
int y2=y[2];
 
 
BufferedImage off = new BufferedImage(x2-x1+2, y2-y1+2, BufferedImage.TYPE_INT_BGR);   
Graphics offsc = off.getGraphics();  
 
int mx,nx;
 
   for(mx=y1;mx<y2+1;mx++){
   for(nx=x1;nx<x2+1;nx++){  
offsc.setColor(new Color(memor[mx][nx],memog[mx][nx],memob[mx][nx])); 
offsc.fillRect(nx-x1,mx-y1,1,1);
   }} 
 String file="e.jpg";
 
offsc.dispose(); 
 
try { 
ImageIO.write(off, "jpeg", new File(file)); 
} catch (IOException exception) { exception.printStackTrace(); }     
}   
 
 
 
    }
 
 
package catchcolor;
 
import java.awt.*; 
import java.awt.image.*; 
import java.net.URL;
import java.net.MalformedURLException;
 
public class catchimg {
 
PixelGrabber pg; 
Color col; 
Image img;
int red,green,blue; 
 
int mx,nx,m,n; 
int ex,ey; 
String s1,s2,s3,s4; 
URL urlx;
int w=1300;
int h=700;
int[] pix=new int[h*w]; 
int[][] memor=new int[h][w]; 
int[][] memog=new int[h][w]; 
int[][] memob=new int[h][w];  
 
void makedata(String pic){
 
catchimg(pic);  
 
} 
 
void catchimg(String s){ 
 
img = Toolkit.getDefaultToolkit().getImage(s); 
pg = new PixelGrabber(img,0,0,w,h,pix,0,w); 
 
try{pg.grabPixels();}catch(InterruptedException ie){} 
m=0; 
n=0; 
for(int i=0;i<w*h;i++){ 
int p = pix[i]; 
col=new Color(pix[i]); 
red=col.getRed(); 
green=col.getGreen(); 
blue=col.getBlue(); 
memor[m][n]=red; 
memog[m][n]=green; 
memob[m][n]=blue; 
n=n+1; 
if (n==w)m=m+1; 
if (n==w)n=0; 
} 
 
 
 
} 
 
 
 
 
 
}
 
最終更新:2016年03月05日 04:56