Hallo nochmal,
Ich lese mit unterem Code eine Datei (BMP) ein, konvertiere diese (ist im Code unten noch nicht enthalten) und gebe diese wieder aus.
Jetzt habe ich leider das Problem, dass eine BMP von unten nach oben aber auch von oben nach unten aufgebaut sein kann -> das kann man aus dem Header der BMP- Datei herauslesen.
Meine Frage wäre jetzt, ob es in JAVA irgendwas gibt um nicht vom Anfang bis zum Ende sondern vom Ende bis zum Anfang einzulesen mit "datei.read(), also dass mit dem lesen am Ende der Datei begonnen wird und bis zum Anfang gelesen wird. Mit dem unteren Code lese ich ja vom Anfang bis zum Ende Byteweise ein, ich würds aber auch, je nach Aufbau der BitMap- Datei, auch umgekehrt benötigen. Gibts da vielleicht eine Klasse oder eine Methode oder ein Interface zum überschreiben der Methode?
Vielen DANK für EURE Antworten
lg
Hannes
Ich lese mit unterem Code eine Datei (BMP) ein, konvertiere diese (ist im Code unten noch nicht enthalten) und gebe diese wieder aus.
Jetzt habe ich leider das Problem, dass eine BMP von unten nach oben aber auch von oben nach unten aufgebaut sein kann -> das kann man aus dem Header der BMP- Datei herauslesen.
Meine Frage wäre jetzt, ob es in JAVA irgendwas gibt um nicht vom Anfang bis zum Ende sondern vom Ende bis zum Anfang einzulesen mit "datei.read(), also dass mit dem lesen am Ende der Datei begonnen wird und bis zum Anfang gelesen wird. Mit dem unteren Code lese ich ja vom Anfang bis zum Ende Byteweise ein, ich würds aber auch, je nach Aufbau der BitMap- Datei, auch umgekehrt benötigen. Gibts da vielleicht eine Klasse oder eine Methode oder ein Interface zum überschreiben der Methode?
Vielen DANK für EURE Antworten
lg
Hannes
Code:
try {
ByteArrayOutputStream bild = new ByteArrayOutputStream();
BufferedInputStream datei = new BufferedInputStream(new FileInputStream(pfad));
pfadAusgabe = pfadKonvertDatei.getText();
//pfadEingabe.setText(pfadAusgabe);
BufferedOutputStream dateiOut = new BufferedOutputStream(new FileOutputStream(pfadAusgabe));
int b;
int y = 0;
String hexWert;
dateiOut.flush();
progressBar = bildGroesse;
while ((b = datei.read()) != -1)
{
if (true) //hier Abfragen ob es sich um eine 24 Bit BMP Datei handelt
{
hexWert = Integer.toHexString(b);
/*b hier nach den Wünschen shiften und dann ausgeben*/
dateiOut.write(b);
dateiOut.flush();
}
}