GeneXus - Imagen en formato data:image/png;base64,

 
Vista:
sin imagen de perfil
Val: 67
Plata
Ha disminuido 1 puesto en GeneXus (en relación al último mes)
Gráfica de GeneXus

Imagen en formato data:image/png;base64,

Publicado por Javier (46 intervenciones) el 21/02/2019 21:05:04
Hola.
Ojalá pueden darme una mano con este problemita.

Tengo un webPanel desde donde llamo a un reporte.
En el webPanel se genera un valor en una variable de texto en formato data uri PNG. Por ejemplo:
&txt1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQ...etc etc."

En el webPanel, tengo un control Image y para ver la imagen, solo escribo:

miImagen.Bitmap = &txt1 // funciona correctamente.

El problema es que paso como parametro el &txt1 a un procedure reporte en el que se debe imprimir esa imagen, PERO NO SE COMO ASIGNAR el valor de &txt1 a una variable tipo img o a un control Image (o que control u otro tipo de variable se necesita).

He probado varias formas mediante los métodos de la variable tipo Image pero no consigo que se vea en el reporte. Tambien consulté en la web y al parecer se debería usar una variable tipo Blob, pero tampoco funciona.

Trabajo con GX X EVO3 - C# y SQL SERVER

Gracias por tu tiempo!
Saludos
Javier
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 67
Plata
Ha disminuido 1 puesto en GeneXus (en relación al último mes)
Gráfica de GeneXus

Imagen en formato data:image/png;base64,

Publicado por Javier (46 intervenciones) el 15/03/2019 16:58:23
Hola: Pude resolver el problema de esta manera: Desde el webPanel llamo al procedure reporte así:

1
printQR( &imgTexto) // esta variable contiene un png en formato data base64

Luego en el Source del procedure report:

1
2
3
4
5
6
7
8
9
10
11
&imgTexto= substr(&imgParametro,23,1000)
&imgBlob.FromBase64String( &imgTexto)
&imgPrint = &imgBlob
 
 
Donde:
&imgParametro C(1000) paramétro que recibe el procedure
&imgText C(1000) es un substring de imgParametro desde char 23.
&imgBlob tipo Blob
FromBase64String( &imgTexto) convierte &imgTexto para almacenar en Blob
&imgPrint tipo Image

imgTexto contiene en sus primeros caracteres, la cadena "data:image/png;base64," que no forma parte de la data de la imagen, por lo que con susbstr tomo desde el caracter 23 hasta el final y se guarda en &imgText que a su vez luego se pasa a &imgBlob. Por ultimo este Blob se asigna a &imgPrint del Layout.

GRACIAS A LOS QUE SE INTERESARON POR ESTE TEMA.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imagen en formato data:image/png;base64,

Publicado por Jose (1 intervención) el 28/08/2022 18:18:36
Gracias a vos por tu aporte!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar