Muito obrigado pela dica staroski, ontem de madrugada trabalhando um pouco eu consegui desenvolver o que eu queria, só que não sei se é a melhor forma, porém está aqui o código.
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
- Essa classe é responsável …
-
-
@author wnunes
*/
public class Janela extends JFrame implements MouseMotionListener, MouseListener {
private ArrayList<Integer> x;
private ArrayList<Integer> y;
Janela teste;
public Janela() {
setTitle("Classificador de Dígitos");
x = new ArrayList<>();
y = new ArrayList<>();
setBackground(Color.BLACK);
addMouseMotionListener(this);
addMouseListener(this);
setSize(200, 200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g) {
Graphics2D graphic = (Graphics2D) g;
graphic.setColor(Color.WHITE);
graphic.setStroke(new BasicStroke(10));
for(int i = 1; i < x.size(); i ++) {
graphic.drawLine(x.get(i-1), y.get(i-1), x.get(i), y.get(i));
}
}
@Override
public void mouseDragged(MouseEvent e) {
x.add(e.getX());
y.add(e.getY());
System.out.println(e.getX() + "," + e.getY());
repaint();
}
public static void main(String[] args) {
new Janela();
}
@Override
public void mouseReleased(MouseEvent e) {
BufferedImage img = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
Graphics2D g2i = img.createGraphics();
paint(g2i);
g2i.dispose();
try {
ImageIO.write(img, "png", new File("desenho.png"));
BufferedImage imagem = null;
try {
imagem = ImageIO.read(new File("desenho.png"));
System.out.println("ok");
} catch (IOException ex) {
}
BufferedImage new_img = new BufferedImage(28, 28, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = new_img.createGraphics();
g2d.drawImage(imagem, 0, 0, 28, 28, null);
ImageIO.write(new_img, "png", new File("desenho1.png"));
System.out.println("Terminou o desenho! Deve classificar a imagem");
}
catch(IOException ioe) {
System.out.println(ioe.getMessage());
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
}
}