import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.HashSet;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class bot extends JPanel implements Runnable {
private static final long serialVersionUID = -7895958135615431190L;
JFrame frame;
private BufferedImage pic;
java.net.URL first = getClass().getResource("pic/try2.jpg");
public static void main(String[] args) {
new bot(430, 70);
}
public bot(int i, int j) {
this.setPreferredSize(new Dimension(i, j));
frame = new JFrame("");
frame.setLayout(new BorderLayout());
frame.setLocation(100, 100);
this.setBackground(new Color(195, 195, 195));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(this);
frame.setVisible(true);
frame.pack();
Thread th = new Thread(this);
th.start();
}
@SuppressWarnings("unused")
public BufferedImage getPixels(BufferedImage image) {
int bereich = 1;
int[][] sp = new int[430][70];
BufferedImage nextimage = new BufferedImage(image.getWidth(),
image.getHeight(), image.getType());
Graphics2D g2 = nextimage.createGraphics();
g2.setColor(Color.white);
g2.fillRect(0, 0, image.getWidth(), image.getHeight());
g2.setColor(Color.BLACK);
for (int x = 0; x < image.getWidth(); x++) {
for (int y = 0; y < image.getHeight(); y++) {
int icolor = image.getRGB(x, y);
Color c = new Color(icolor);
if (!isLetter(icolor)) {
sp[x][y] = 0;
}
if (isLetter(icolor)) {
g2.fillRect(x, y, 1, 1);
pic = nextimage;
repaint();
sp[x][y] = 1;
}
}
}
HashSet<Point> openlist = new HashSet<Point>();
HashSet<Point> closelist = new HashSet<Point>();
Point p = new Point();
for (int j = 0; j < sp[0].length; j++) {
for (int i = 0; i < sp.length; i++) {
System.out.print(sp[i][j]);
// openlist.add();
}
System.out.println();
}
g2.dispose();
return nextimage;
}
private boolean isLetter(int icolor) {
Color c = new Color(icolor);
float mittle = (c.getBlue() + c.getRed() + c.getGreen()) / 3f;
return mittle < 50;
}
public void getImage() throws IOException {
pic = ImageIO.read(first);
}
public void paintComponent(Graphics g) {
g.drawImage(pic, 0, 0, frame);
}
@Override
public void run() {
try {
getImage();
} catch (IOException e1) {
e1.printStackTrace();
}
pic = getPixels(pic);
repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
}
}
}