Hallo allerseits!
Ich habe ein Bild im .ppm Format, welches ich in einem Java-Programm einlesen möchte um daraus die Höhe, Breite und den maximalen Farbwert des Bildes zu erhalten.
Dazu hab ich mir folgende Methode geschrieben:
Das einlesen und splitten scheint soweit zu funktionieren. Wenn ich mir mit Arrays.toString() das bildArray ausgeben lasse scheint es mir in Ordnung zu sein. Das System.out.println(bildArray[0] funktioniert auch noch, aber bei
System.out.println(bildArray[1]) bekomme ich eine ArrayIndexOutOfBounds Exception. jetzt kommt es mir so vor als hätte das bildArray nur ein großes Element in dem der ganz Text gespeichert ist? Wie kann es aber dann sein dass ich mit System.out.println(bildArray[0]); wie erwartet ein "P3" ausgegeben bekomme? mache ich beim splitten irgendwas falsch?
Danke im voraus, dangario
Ich habe ein Bild im .ppm Format, welches ich in einem Java-Programm einlesen möchte um daraus die Höhe, Breite und den maximalen Farbwert des Bildes zu erhalten.
Dazu hab ich mir folgende Methode geschrieben:
Java:
import java.io.*;
import java.util.Arrays;
public class PPMReader {
public static PPMImage read (File bild) throws IOException{
String s;
int width = 0;
int height = 0;
int maxVal = 0;
String[] bildArray = null;
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(bild)));
while(null != (s = br.readLine())){
//Kommentare aus dem Bild entfernen
if (s.contains("#")) continue;
else {bildArray = s.split("\\s+");}
//Tests
System.out.println(bildArray[0]);
System.out.println(bildArray[1]);
width = Integer.parseInt(bildArray[1]);
height = Integer.parseInt(bildArray[2]);
maxVal = Integer.parseInt(bildArray[3]);
}
PPMImage eingeleseneDatei = new PPMImage (width,height,maxVal);
return eingeleseneDatei;
}
}
Das einlesen und splitten scheint soweit zu funktionieren. Wenn ich mir mit Arrays.toString() das bildArray ausgeben lasse scheint es mir in Ordnung zu sein. Das System.out.println(bildArray[0] funktioniert auch noch, aber bei
System.out.println(bildArray[1]) bekomme ich eine ArrayIndexOutOfBounds Exception. jetzt kommt es mir so vor als hätte das bildArray nur ein großes Element in dem der ganz Text gespeichert ist? Wie kann es aber dann sein dass ich mit System.out.println(bildArray[0]); wie erwartet ein "P3" ausgegeben bekomme? mache ich beim splitten irgendwas falsch?
Danke im voraus, dangario