BufferedImage im RAW-Format speichern.

acibu

Grünschnabel
Hi Folks,

mich beschäftigt z.Z. das abspeichern von Bildern im RAW-Format.
Bis jetzt habe ich es eigendlich nur geschafft über "ImageIO.write()" ein Bild im JPG-/ und PNG-Format abzuspeichern.
Leider sieht meine Aufgabenstellung so aus, das in Java Vorliegende BufferedImage im RAW-Format abzuspeichern.

Ich hoffe ihr könnt mir weiter helfen. Sitze an diesem Problem schon seit'nem guten Tag.

Bis dahin
ACIbu
 
Zuletzt bearbeitet:
Hallo!

Da wirst du wohl mit standard Java nicht weit kommen...:
Code:
/*
 * Created on 13.10.2004
 */
package de.tutorials;

import javax.imageio.ImageIO;

/**
 * @author Darimont
 *  
 */
public class Test09 {

    public static void main(String[] args) {
        String[] str = ImageIO.getWriterFormatNames();
        for (int i = 0; i < str.length; i++) {
            System.out.println(str[i]);
        }
    }
}

Ergibt:
jpeg

png

JPG

PNG

jpg

JPEG

Aber zu deinem Glück gibts noch das JAI (Java Advanced Imaging API)
http://java.sun.com/products/java-media/jai/downloads/download-1_1_2_01.html

http://java.sun.com/products/java-media/jai/forDevelopers/jaifaq.html#dataformat
Raw steht zwar nicht explizit als unterstützer Typ in der FAQ, jedoch lassen einige Beiträge in den java.sun.com Foren darauf schließen, dass JAI auch RAW unterstützt.

Gruß Tom
 
a) RAW ist nicht wirklich definiert - glaube ich. War es zumindest vor ein paar Jahren.
b) Man kann doch die einzelnen RGB-Werte der Pixel abfragen. Auslesen und speichern.
 
Hey ho,

alles klar. Hat sich dann wohl erledigt.
Hab jetzt, wie squeaker mir vorgeschlagen hat, mittels zweier for-Schleifen jeden einzelnen Pixel abgespeichert.

Hier meine Lösung:
Code:
File file = new File("test.raw");
	    
if(file.exists()) {
	file.delete();
}
	    	
int x,y;
	    	
file.createNewFile();
FileWriter fwrite = new FileWriter(file);
	    	
for(y=0;y<256;y++) {
	for(x=0;x<256;x++) {
	    	fwrite.write(img.getRGB(x,y));
	}
}
fwrite.close();
Auf bald
AC-Ibu
 
Zurück