Autor Tema: Convertir array de bytes a String y viceversa  (Leído 22130 veces)

0 Usuarios y 1 Visitante están viendo este tema.

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Convertir array de bytes a String y viceversa
« Respuesta #15 en: Junio 27, 2011, 11:37:38 am »
Si usas mysql pon tipo BLOB o TEXT :D

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Convertir array de bytes a String y viceversa
« Respuesta #16 en: Junio 27, 2011, 12:24:17 pm »
No uso mysql, Firebird tambien tiene tipo Blob, voy a ver que usarlo alli.

Saludos
« última modificación: Junio 27, 2011, 12:37:47 pm por YAcosta »
Me encuentras en YAcosta.com

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Convertir array de bytes a String y viceversa
« Respuesta #17 en: Junio 28, 2011, 08:43:26 pm »
yo lo uso en sql server que tiene el tipo de dato varchar(max) que no tiene limite, o si lo tiene son varios gigas. igualmente yo no dejo seleccionar una imagen que se exceda de un tamaño particular, asi no satura la base de datos.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Convertir array de bytes a String y viceversa
« Respuesta #18 en: Junio 28, 2011, 08:55:52 pm »
yo lo uso en sql server que tiene el tipo de dato varchar(max) que no tiene limite, o si lo tiene son varios gigas. igualmente yo no dejo seleccionar una imagen que se exceda de un tamaño particular, asi no satura la base de datos.

Sebas, pero al margen de la BD, es correcta la forma en que convierto la imagen y la recupero?? y la cantidad de caracteres son los usuales? aun me queda duda por las otras dos funciones de Lea que no uso.
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Convertir array de bytes a String y viceversa
« Respuesta #19 en: Junio 28, 2011, 09:10:56 pm »
De ultima podes usar un resizeador de imagenes (con GDI por ejemplo)

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Convertir array de bytes a String y viceversa
« Respuesta #20 en: Junio 28, 2011, 09:57:53 pm »
a mi tambien me dio la impresion de que devolvia mas bytes de los que eran, lo probe con una imagen chica hace muhcho y se notaba la diferencia, me imagino que con una grande se nota mas, ahora lo pruebo bien y te confirmo.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Convertir array de bytes a String y viceversa
« Respuesta #21 en: Junio 28, 2011, 10:00:53 pm »
Gracias Sebas, y disculpa la insistencia pero la verdad no capto bien EncodeString y DecodeToString, osea si ya tengo un string para que volver a usar el EncodeString y DecodeToString, eso no capto.

Gracias
Me encuentras en YAcosta.com

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Convertir array de bytes a String y viceversa
« Respuesta #22 en: Junio 28, 2011, 10:37:37 pm »
para pasarlo a array de bytes, que es lo que acepta el control ucImage, haber, trato de explicarlo  ;D.

la imagen que se guarda en el control ucImage es un array de bytes (el famoso Stream), por eso es necesario obtener ese array de bytes (con el .GetStream) y convertir ese array de bytes en String para poder guardarlo.

la conversion es lo contrario, agarras el string y con la clase lo volves a convertir a un array de bytes, y asi se lo pasas a la funcion .LoadImageFromStream, entonces el control ucImage interpreta ese array de bytes y muestra la imagen.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Convertir array de bytes a String y viceversa
« Respuesta #23 en: Junio 28, 2011, 10:43:52 pm »
Si amigo, y hago esa conversión con  EncodeByteArray y  DecodeToByteArray para convertirlo a string y recuperarlo, lo que no se es para que usaria EncodeString y DecodeToString de la clase de Leandro.

Muchas gracias

Me encuentras en YAcosta.com

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Convertir array de bytes a String y viceversa
« Respuesta #24 en: Junio 28, 2011, 10:54:24 pm »
a perdon a, si esas 2 funciones son lo mismo, no se usan,  fijate que dentro de estas llaman a las mismas funciones que estamos usando, en realidad si queres la podes poner como privadas asi no las ves mas.

probe con una foto de camara digital, peso original de 2.1 megas, al convertirlo a string pesa casi 3 megas.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Convertir array de bytes a String y viceversa
« Respuesta #25 en: Junio 28, 2011, 11:07:48 pm »
Listo, entonces ya me queda claro, temía que quizá no estaba usando debidamente las conversiones.

Bueno, con lo que me explicas de la cámara, me confirma la siguiente duda ya a nivel conceptual. es una pregunta, dado que el tamaño del string no es significativa o medianamente corto, mmm, ¿cual es el beneficio de usarlo?.

He investigado y en FB también puedo grabar fotos, voy a seguir leyendo que problemas pudiera tener con el manejo de fotos dentro de mi motor si los hubiere, pero, mas alla de ser un código muy interesante e incluso sorprendente, ¿porque habría de usarlo? considerando que tengo un costo de tiempo en la conversión, no tanto para almacenarlo sino para leerlo, me interesaba usarlo en lista de productos donde muestre 20 a la vez por pantallazo y alli si quizá pueda sentir la demora.

La verdad me interesa usarlo, pero aun con la idea de Raul de rezisarlo tampoco veo un beneficio porque la foto en si la podría guardar resizada.

Entiéndase mis estimados que mi cuestionamiento es con todo respeto y sin un ápice de reclamo alguno (no tendria porque jeje) y la hago con todo el deseo de conocer y tener presente el beneficio, la ventaja o las desventajas.

Un abrazo y gracias por las respuestas.
Me encuentras en YAcosta.com

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Convertir array de bytes a String y viceversa
« Respuesta #26 en: Junio 28, 2011, 11:15:27 pm »
bueno la ventaja que le veo es que este control acepta lo que sea, digo acepta muhcisimos formatos de imagen, hasta png con transparencia alpha. en cambio con ADO Stream que era como guardaba antes, solo me limitaba a 2 formatos y aparte era horrible el codigo que habia que hacer para esto.

igual sigo investigando que puede ser, pero hasta ahora este metodo no lo cambio por nada.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Convertir array de bytes a String y viceversa
« Respuesta #27 en: Junio 29, 2011, 12:12:42 am »
Bueno es cierto, el control es power, el formato png ya de pòr si es una enorme ventaja tenerlo en un tipo de dato que no dará ningún conflicto... incluso si migrases la data de una BD a otra por el lado de fotos solo te llevas la cadena string. Por lo pronto habria que poner limitaciones claras.

Amigo Raul si me pudieses indicar donde encuentro ese resizeador de imagen te agradeceria, porque esta interesante ese pase previo antes de meterlo a la BD.

Saludos
Me encuentras en YAcosta.com

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Convertir array de bytes a String y viceversa
« Respuesta #28 en: Junio 30, 2011, 12:59:32 am »
Hola Yvan, quizas si me da el tiempo pueda darte una mano, pero decime en que forma te valdria  la funcion

ResizeImage(ArrBitsEntrada, ArrBitsSalida, TamañoThumbnail)

ResizeImage(PathImagen, ArrBitsSalida, TamañoThumbnail)

ResizeImage(hImage, ArrBitsSalida, TamañoThumbnail)


La primera funcion pasas en el primer parametro el array de bits el cual ya leiste desde el archivo o base de datos, el segundo parametro es el array de bits de salida (el cual seria la imagen achicada), y el tercer parametro el tamaño de del Thumbnail

La segunda funcion pasas en el primer parametro el path de la imagen, el segundo parametro es el array de bits de salida (el cual seria la imagen achicada), y el tercer parametro el tamaño de del Thumbnail

La tercera funcion (la cual no creo que sea la uses) pasas en el primer parametro un hImage (GDI+ o podria ser un bitmap) , el segundo parametro es el array de bits de salida (el cual seria la imagen achicada), y el tercer parametro el tamaño de del Thumbnail

Saludos.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Convertir array de bytes a String y viceversa
« Respuesta #29 en: Junio 30, 2011, 03:24:55 am »
Mi estimado, gracias por la atención.

Quisiera preguntarte sobre la segunda función:

ResizeImage(PathImagen, ArrBitsSalida, TamañoThumbnail)

Pasar en primer parámetro el path de la imagen: Esto si esta claro, el usuario escogería la ruta de su archivo de foto, mi duda es que si también uso esta parte para mostrarla en el ucImage de Cobein.

El segundo parámetro es el array de bits de salida (el cual seria la imagen achicada): Aquí esta mi duda, no capto como es que seria de salida si son parámetros de entrada, no estoy entendiendo bien. Si es de salida entonces esa seria la cadena que meteria a la BD porque seria la foto achicada.

y el tercer parametro el tamaño de del Thumbnail Seria esta entonces la que mostraría en pantalla en vez de la del primer parámetro.

Bueno quizá lo comprenda cuando vea la función. Muchísimas gracias.
Me encuentras en YAcosta.com