Feeds de los foros

En la página principal de los foros encontrarás los enlaces al logo feed feed general y al de cada uno de los foros.

Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible

Buscar en el foro

Foro XML

feed Foro XML Foro: XML

Nuevo Tema Nuevo Tema

Empotrar una imagen en un fichero XML 28/02/2008 21:26
anonymous

Saludos

Me gustaría saber cuáles son los mecanismos recomendados para empotrar una imagen en un fichero XML.

He probado lo siguiente:

1- Cargo la imagen"1" mediante un BufferedReader y obtengo los binarios.

2- Creo el fichero xml tal que

<.image name = "imagename.jpg".><.imagedata encoding="Base64".>
...base64....< ./imagedata.><./image.>
3- Obtengo los datos codificados en Base64 del fichero xml. Descodifico y guardo la imagen"2" mediante un FileOutStream.

Esto funciona aparentemente bien, pero la imagen"2" resulta ser un destrozo de la "1".

También he probado a cargar la imagen"1" mediante ImageLoader.load(FileInputStream") y guardar la imagen"2" mediante ImageLoader.save(String imagename). En este caso el problema que me he encontrado ha sido que imagen "2" ha resultado ser 10 veces más grande.

Alguna sugerencia? Gracias de antemano

#unapprove_message#
RE: Empotrar una imagen en un fichero XML 29/02/2008 01:03
RuGI

quiza sirva convertirla a un byte[], ya que lo tengas lo conviertes a una cadena separda por comas.

 

Saludos...

#unapprove_message#
RE: Empotrar una imagen en un fichero XML 29/02/2008 10:16
anonymous

Adjunto partes de código para que se vea como lo estoy intentando hacer:

Primero obtengo los datos de la imagen.

private static byte[] getFileData(String file) throws Exception{        ; 
        ; BufferedReader bfReader = new BufferedReader(new FileReader(file));    
        ; String str;
        ; StringBuffer strBuffer = new StringBuffer();
        ;         
        ; while ((str = bfReader.readLine())!=null) {
        ;     strBuffer.append(str).append('\r').append('\n');
        ; }
        ; return strBuffer.toString().getBytes();
}

 

Partiendo de los binarios del fichero jpg, cargo el fichero xml.

private static void createBase64XMLImagefile(
String fileName){        ; 
        ; try{
        ;     Element imageElement = new Element("image");
        ;     Element imageDataElement = new Element("imageData");
        ;     
        ;     imageElement.addContent(imageDataElement);
        ;     
        ;     imageDataElement.setText(Base64.encode(getFileData(sourceImageName))); 

        ;     Document doc=new Document(imageElement);
        ;     
        ;     XMLOutputter out = new XMLOutputter(Format.getPrettyFormat());
        ;     FileOutputStream file = new FileOutputStream(fileName);
        ;     out.output(doc,file);
        ;     file.flush();
        ;     file.close();
        ; }catch(Exception e){e.printStackTrace();}
    } 

Luego obtengo la información del XML y creo una imagen nueva.

private static void createNewImageFromXmlFile(){
        ; try{        ; 
        ;     String retrievedData = new String(Base64.decode(new String(getXMLData())));
        ;     
        ;     FileWriter fileWriter = new FileWriter(new File(targetImageName));        ;     
        ;     fileWriter.write(retrievedData);
        ;     fileWriter.close();        ;     
        ; }catch(Exception e){e.printStackTrace();}
    }

    private static byte[] getXMLData () throws Exception{
        ; SAXBuilder builder = new SAXBuilder(false);
        ; Document doc = builder.build(xmlFile);
        ; 
        ; Element root = doc.getRootElement();        ; 
        ; Element imageDataElement = root.getChild("imageData");
        ; 
        ; return imageDataElement.getText().getBytes();
    }

 

 

El resultado es una nueva imagen que resulta ser una "malformación" de la original.

#unapprove_message#
RE: RE: Empotrar una imagen en un fichero XML 05/03/2008 09:55
anonymous

La solución a mi problema está aquí:

 

http://forum.java.sun.com/thread.jspa?threadID=570045&me ssageID=2820750

 

 

#unapprove_message#
#thread_expired#.
Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano