Imagenes desde FileSystem en Web...

Que tal, tengo una duda con respecto al manejo de imágenes en Web, pero no se si sea bronca específica del Gwt.
Verán, quiero lanzar una imagen ( formato jpg, png ó gif ), sin embargo, la imagen puede ser dinámica, porqué digo ésto, bueno, porque en Gwt, se pueden mapear imágenes mediante anotaciones e interfaces, sin embargo, son imágenes estáticas, y la imagen a la que me refiero, pues puede cambiar. Dicha imagen está alojada en el FileSystem de mi máquina, en un folder específico, y con Java creo un arreglo de bytes, que representa dicha imagen.
Leí en el foro de stackOverflow que no es posible pasar el stream( o arreglo de bytes ) directamente ( o al menos eso entendí ) si no que había que hacer una transformación del array de bytes que conforman la imagen, a un String en base64, y pues el browser ya interpreta ésa cadena en base64 ....
Ahora, pues quisiera saber si alguien ha hecho algo así, o existe alguna librería que me ayude con ésa chamba, porque la clase de utilería de conversión del propio Gwt no me muestra las imágenes en el browser ..... o si alguien lo ha hecho de otro modo, con JavaScript y Java, pues no me vendría mal, alguna referencia....
Gracias por tomarse la molestia de leer mi duda....

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Bueno, bueno.... les voy a

Bueno, bueno.... les voy a dar otro chance de ayudarme ;-) ...
Según algunos artículos que leí, lo que se hace para manejar imágenes en web, es convertir dichas imágenes a un arreglos de bytes, y pasar ese arreglo de bytes a un String en Base 64 .....
De hecho, ese tipo de comportamiento se nota al guardar una página completa ( como archivo .mht ) y viendo el código fuente de la página....
Ya logré, convertir un archivo JPG a un String en Base64, y ése mismo String, convertirlo a imagen... pero en el mismo FileSystem local ...
alguien ha intentado subir una cadena en Base64 a una página?? por algún Script, o algún framework para front-end???
nadie?? ...
changos.... seguiré investigando....

Recuerda que GWT, convierte

Recuerda que GWT, convierte Java a Javascript que a su vez es un lenguaje que se ejectua en el cliente ( lease, el browser )

Entonces, no puede servir el contenido, lo tiene que "escribir" en la página ( tal y como se escribe el resto del javascript ).

Como no puede servirla y como el las paginas web ( HTML ) sirve contenido en texto plano, tienes que codificarlo en base64 ( que es el mismo contenido, pero con caracteres imprimibles ) y ese contenido se "pega" en los datos que se envían, pero como dicen ahi en SO, no aplica para IE87.

Ahora, te adiverto que en mi vida me he acercado a GWT. Pero si te puedo sugerir que como alternativa, sirvas la imagen desde un servlet regular, sencillito y carismático y poner la liga desde GWT.

Espero que lo que diga tenga sentido.

Imagen de ezamudio

algoritmo

Pues supongo que tienes que hacer algo como un tag de <img> donde en vez de href le pones algún otro atributo que es la cadena en base64, pero debe además llevar otro atributo para el tipo MIME (indicando si esos datos son de una imagen PNG, GIF, JPG, etc) para que el navegador sepa cómo decodificarla.

Segun la respuesta de SO es

Segun la respuesta de SO es algo como: data:image/png;base64,"+base64;

Segun la respuesta de SO es

Segun la respuesta de SO es algo como: data:image/png;base64,"+base64;

Imagen de ezamudio

Oscar

Eso va en el src o dónde?

Imagen de ezamudio

Cierto

Ya hice una prueba y funcionó como dice Oscar. <img src="data:image/png;base64,y_aqui_va_el_texto_en_base64" > al menos en Safari y Chrome funcionó de maravilla, ni siquiera tuve que quitar los cortes de línea.

La imagen la codifiqué con openssl, guardándola en un imagen.html al que luego le agregué nada más los tags necesarios de HTML:

<html><head>bla</head><body><img src="data:image/png;base64,

Luego va el texto en base64 y luego al final nada más

" alt="imagen" /></body></html>

Ahora me pregunto... qué tiene que ver esto con Java? como que la pregunta fue de puro HTML.

Si, en el img. Lo que pasa

Si, en el img src.

Lo que pasa es que GWT, se escribe en Java, y se compila en Javascript ( cool no? )

Luego como lo que sirve en javascript y no recursos ( como imagenes ) tienes que escribirlo ( o jalarlo con ajax )

Para obtener la imagen en el lado del servidor, la lees como leerías cualquier archivo binario en Java.

Entonces, la relavacia es que GWT usa Java

Imagen de neko069

Thanx...

Gracias por responder.
Con respecto a lo que dice @ezamudio, pues tiene una explicación.
La pregunta inicial era cómo manejar imágenes desde el cliente con Gwt, pero pues nadie contestó...
Entonces, pues, se supone que Gwt te permite implementar funciones nativas de JavaScript, y leyendo un
poco más, pues encontré que, convirtiendo imágenes a un String en base64 ya el JavaScript ( o incluso un Html)
puede traducir el String y mostrar la imagen en el navegador.
Si alguien me hubiera dicho como hacerlo con JavaScript, pues ya hubiera implementado la función a Gwt con JSNI.
Lo bueno fue que no hubo necesidad jejeje... ( es algo que nunca he hecho, si bien me he documentado, y no
sé cuánto tiempo me hubiera llevado )
en fin, voy a escribir algo de lo que he visto con Gwt, y lo postearé en mi blog, para que vean más o menos cómo
se maneja ( me llama la atención lo que menciona @OscarRyz, que no lo conoce ) y además me servirá de terapia...
Pues muchas gracias, como siempre, me han acrecentado mis dudas .... no!! quiero decir, como siempre, me han
dado la mano para tener una línea a seguir, chas gracias!!!!

Yeap, use mal mis

Yeap, use mal mis palabras.

No quise decir que no lo conozco, lo conozco digamos a un nivel básico/intermedio. Lo que quizé decir, es que nunca lo he usado (que casi lo mismo, pero no es igual). Es decir, tengo conocimiento teórico :)

Imagen de neko069

Ok, ok... Entendido el punto,

Ok, ok...
Entendido el punto, pero pues, como comentaba, voy a hacer un post ( en cuanto tenga algo de tiempo, lo prometo ) para ver si despierto el interés, o a ver si sale algún flexero, que me diga "ésto también se puede hacer con flex y se hace ....." sería interesante, no como comparativa, si no para ir complementando conocimientos en frameworks para front-end...

Saludos, y gracias de nuevo!!