T
Timee
Gast
Hallo ihr!
Ich hab schon viel gegogelt und in Foren gesucht, aber leider noch nichts brauchbares gefunden.
Ich möchte eine Bilddatei einlesen und als mehrdimensionalen Array speichern und damit dann weiterarbeiten. Im Array soll nur ein Wert für schwarz oder weiss (1 oder 0) gespeichert werden.
Das einlesen funktioniert wunderbar, außer das ich bei der Ausgabe in der Console die Arraywerte spiegelverkehrt und vertikal anstatt horizontal angezeigt werden (habe schon stundenlang rumprobiert, aber bekomm es einfach nicht hin das es richtig ist)
Hier der Code:
in der Konsole sieht das Bild (hier ein bitmap mit ein paar Buchstaben, hier ein "A") dann aber so aus:
......................................................................................................................
...................................................................####...............................................................................
.................................................................######...............................................................................
..............................................................#########...............................................................................
...........................................................#########..................................................................................
.........................................................########.....................................................................................
......................................................#########.......................................................................................
...................................................############.......................................................................................
................................................#########...###.......................................................................................
..............................................########......###.......................................................................................
...........................................########.........###.......................................................................................
.........................................#######............###.......................................................................................
.........................................####...............###.......................................................................................
.........................................####...............###.......................................................................................
.........................................#######............###.......................................................................................
..........................................#########.........###.......................................................................................
.............................................#########......###.......................................................................................
...............................................##########...###.......................................................................................
..................................................#########.###.......................................................................................
.....................................................##########.......................................................................................
.......................................................##########.....................................................................................
..........................................................##########..................................................................................
.............................................................#########................................................................................
................................................................#######...............................................................................
..................................................................#####...............................................................................
.....................................................................##...............................................................................
......................................................................................
Das ganze ist hier verzerrt. die proportionen stimmen in der Konsole überein.
Vielleicht könnte einer von euch mal kurz den Code überfliegen und mir eine kleine Hilfestellung geben, was ich falsch mache
Danke schon mal im vorraus
Gruß,
Timee
Ich hab schon viel gegogelt und in Foren gesucht, aber leider noch nichts brauchbares gefunden.
Ich möchte eine Bilddatei einlesen und als mehrdimensionalen Array speichern und damit dann weiterarbeiten. Im Array soll nur ein Wert für schwarz oder weiss (1 oder 0) gespeichert werden.
Das einlesen funktioniert wunderbar, außer das ich bei der Ausgabe in der Console die Arraywerte spiegelverkehrt und vertikal anstatt horizontal angezeigt werden (habe schon stundenlang rumprobiert, aber bekomm es einfach nicht hin das es richtig ist)
Hier der Code:
Code:
package picture_analyzer2;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
public class PixelWorks
{
public static final double THREASHOLD = 3.;
private static BufferedImage img;
public static void main(String... args)
{
final JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
final File pic = chooser.getSelectedFile();
try
{
img = ImageIO.read(
new BufferedInputStream(
new FileInputStream(pic)));
}
catch (FileNotFoundException e) { e.printStackTrace();}
catch (IOException e) { e.printStackTrace(); }
final Raster raster = img.getRaster();
int maxX = raster.getWidth();
int maxY = raster.getHeight();
final int[][] values = new int[maxY][maxX];
for(int x = 0; x < maxX; x++)
for(int y = 0; y < maxY; y++)
if (raster.getPixel(y, x, (double[])null)[0] <= THREASHOLD)
{
values[y][x] = 1;
}
for(int[] n : values)
{
for(int i : n)
System.out.print(i > 0 ? '#' : '.');
System.out.println();
}
}
}
in der Konsole sieht das Bild (hier ein bitmap mit ein paar Buchstaben, hier ein "A") dann aber so aus:
......................................................................................................................
...................................................................####...............................................................................
.................................................................######...............................................................................
..............................................................#########...............................................................................
...........................................................#########..................................................................................
.........................................................########.....................................................................................
......................................................#########.......................................................................................
...................................................############.......................................................................................
................................................#########...###.......................................................................................
..............................................########......###.......................................................................................
...........................................########.........###.......................................................................................
.........................................#######............###.......................................................................................
.........................................####...............###.......................................................................................
.........................................####...............###.......................................................................................
.........................................#######............###.......................................................................................
..........................................#########.........###.......................................................................................
.............................................#########......###.......................................................................................
...............................................##########...###.......................................................................................
..................................................#########.###.......................................................................................
.....................................................##########.......................................................................................
.......................................................##########.....................................................................................
..........................................................##########..................................................................................
.............................................................#########................................................................................
................................................................#######...............................................................................
..................................................................#####...............................................................................
.....................................................................##...............................................................................
......................................................................................
Das ganze ist hier verzerrt. die proportionen stimmen in der Konsole überein.
Vielleicht könnte einer von euch mal kurz den Code überfliegen und mir eine kleine Hilfestellung geben, was ich falsch mache
Danke schon mal im vorraus
Gruß,
Timee