Objeto Imagen a String para unir a JSON


([N4] rpaton) #1

Hola:
Para un proceso de exportación en JSON necesito añadir al JSON la imagen guardada en un campo Objeto Imagen por lo que tengo que obtener una cadena de texto pero no consigo obtenerla. Estoy intentando utilizar fieldToByteArray pero me devuelve el texto “Object Objetc”.

for (var nReg=0; nReg<list.size();nReg++) {
var registro = list.readAt(nReg);
var cadena = new VByteArray()
cadena.setText(registro.fieldToByteArray(“LOGO”));

}

 Saludos.
 Ricardo Patón

([N4] rpaton) #2

Hola:

Resuelto. Me acordé que Paco Satue hizo un ejercicio sobre esto. He consultado la ayuda de su ejercicio y encontré la solución.
var oByteArray = new VByteArray()
var oImage = new VImage()

// Obtenemos la imagen desde la ruta del Path
oImage=registro.fieldToImage("LOGO");
// Obtenemos el ByteArray desde el objeto Image
oByteArray = oImage.saveToData("PNG",0)
// Pasamos el contenido del ByteArray a Base64
var oByteArrayBase64 = oByteArray.toBase64()
// Obtenemos el String para poder guardarlo en el campo de la Tabla
var cBase64 = oByteArrayBase64.toLatin1String()
alert(cBase64)
 Saludos.

 Ricardo Patón

([N3] blavan) #3

Hola, serias tan amable de explicar esta linea de tu código
// Obtenemos la imagen desde la ruta del Path
oImage=registro.fieldToImage(“LOGO”);

Pregunta registro ¿a que se refiere? a un nombre de tabla?
registro.fieldToImage(“LOGO”) ?

El resto evidentemente no tiene pega

Muchas gracias, pero en JS estoy IN ALBIS o casi


([N1] wikan) #4

registro es la variable que contiene el objecto VRegister con el registro que estás tratando. Así como “LOGO” se refiere al campo que guarda la imagen.


([N4] rpaton) #5

Hola:

 Se adelantó Manuel, pero es lo que él indica. Yo quería añadir a un JSON los campos dibujo y con eso se hace. Pero finalmente decidí pasar los dibujos desde el campo LOGO a fichero y enviar esos ficheros por SDV ya que sino el JSON se incrementa en muchos megas y sería muy pesado.

 Saludos.

 Ricardo Patón

([N3] blavan) #6

Gracias