FileOutputStream (write o println o print)?
Publicado por lilu (112 intervenciones) el 24/05/2006 21:48:30
Buenas tardes de nuevo. Desde hace rato quiero guardar los datos de una imagen o textura (componentes RGB) en un archivo y creo que lo estoy logrando. Tengo este metodo que pertenece a una clase ya hecha, claro ya tengo la imagen cargada y todo, lo que necesito ahora es guardar esas componentes de color, es decir las variables r, g, b, en un Archivo, como ya mencione. Se me ocurrio guardarlo en un arreglo y luego de alli guardarlo en el archivo, pero FileOutputStream creo que no tiene un metodo para poder guardar el arreglo de bytes o int en un archivo o será que es el metodo "void write(byte[] b)", el que tengo que utilizar??..Como hago?, por favor!!
public void escribirArchivo()
{
ColorModel color;
int r, g, b,tam,a;
int x = bi.getWidth();
int y = bi.getHeight();
int ancho = img.getWidth(this);
int alto = img.getHeight(this);
int[] datos = new int[ancho*alto];
tam = ancho*alto;
try{
FileOutputStream fichero = new FileOutputStream("c:/pruebaImagen.txt");
PrintWriter pw = new PrintWriter(fichero);
for(a=0; a<=tam; a+=3)
{
color = bi.getColorModel();
r = color.getRed(bi.getRGB(x,y));
g = color.getGreen(bi.getRGB(x,y));
b = color.getGreen(bi.getRGB(x,y));
datos[a] = r;
datos[a+1] = g;
datos[a+2] = b;
}
//pw.write.....???
//pw.println....???
}catch(Exception e)
{e.printStackTrace();}
}
public void escribirArchivo()
{
ColorModel color;
int r, g, b,tam,a;
int x = bi.getWidth();
int y = bi.getHeight();
int ancho = img.getWidth(this);
int alto = img.getHeight(this);
int[] datos = new int[ancho*alto];
tam = ancho*alto;
try{
FileOutputStream fichero = new FileOutputStream("c:/pruebaImagen.txt");
PrintWriter pw = new PrintWriter(fichero);
for(a=0; a<=tam; a+=3)
{
color = bi.getColorModel();
r = color.getRed(bi.getRGB(x,y));
g = color.getGreen(bi.getRGB(x,y));
b = color.getGreen(bi.getRGB(x,y));
datos[a] = r;
datos[a+1] = g;
datos[a+2] = b;
}
//pw.write.....???
//pw.println....???
}catch(Exception e)
{e.printStackTrace();}
}
Valora esta pregunta


0