Power Builder - mostrar imagen en un DW

 
Vista:

mostrar imagen en un DW

Publicado por Ismael Laurente Gomez (8 intervenciones) el 30/05/2001 21:27:41
Hola, yo he revisado el help de power y he encontrado la solucion, en el pintor de datawindows hay un control 'create large binary / text database ole object', con este control puedes mstrar una imagen almacenada en tu base de datos. Estuve probando y si funciona, el problema fue que cuando insertaba imagenes JPG y GIF, cuando revice la base de datos medi con la sorpresa que este se habia incrementado exponencialmente, un archivo JPG de 10 KB se ocupaba un espacio de 1 MB y hasta 14 MB, a que se debe? como puedo corregir el problema?
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

RE:mostrar imagen en un DW

Publicado por Ricardo (1957 intervenciones) el 30/05/2001 22:31:22
Hola que tal.

Alguna vez también hice ese mismo uso en las imagenes, las trate de almacenar como campos blob en una tabla y el efecto que vi en la db fue sorprendente al igual que tu caso. Me digeron que era por cuestiones de almacenaje y de referencia, esto es, dado que no es un tipo de dato "normal" la base de datos crea una estructura especial para dicho campo (blob) cuya longitud es variable y que cuenta con una estructura interna para tener toda la referencia del archivo, desde el nombre, tipo de archivo, tamaño, etc. con ello ademas de cargar (encapsular) al archivo, tambiar carga con sus datos "personales".

Lo que normalmente se hace es tener un directorio para imagenes y en la tabla guardas unicamente la ruta del archivo, asi en tu dw para mostrarla utilizas un compute field con la funcion bitmap(ruta) y con ello te despliega la imagen como si estuviera almacenada en la tabla y sin problema de que el tamaño sea exagerado.

Suerte!
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

RE:mostrar imagen en un DW

Publicado por Ismael (8 intervenciones) el 31/05/2001 18:32:00
Hola, si yo tambien trabajo con imagenes de la misma manera que me sugieres, lo que pasa es que queria utilizar esa opcion que me brinda el datawindows. Creo que el poblema es que las imagenes jpg y gif son formatos comprimidos, al mostrarlos se descomprimen en memoria y es asi como se guardan en la base de datos, creo que eso es la razon del incremento del tamaño. Ahora la pregunta es ¿como puedo evitar eso?.

Otra consulta, he estado mostrando imagenes en un campo computado con la funcion bitmap(RUTA), pero el detalle es: ¿como hago para que la imagen aparesca en su tamaño original?

salu2,
IsmA
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

RE:mostrar imagen en un DW

Publicado por Ricardo (1957 intervenciones) el 31/05/2001 20:40:58
Por medio de la propiedad OriginalSize( ) = TRUE / FALSE, con el modify

Si es falso utilizas: Width or Height

Un saludo!
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

RE:mostrar imagen en un DW

Publicado por ismael laurente (8 intervenciones) el 31/05/2001 22:25:37
hola, he seguido tu consejeo pero no he obtenido los resultados deseados.
he creado un campo computado y en el el utilice la funcion bitmap(RUTA_ARCHIVO), y si me muestra la imagen.

He añadido un boton a mi ventana de tal manera que la imagen se visualice en su tamaño original
el codigo es el sguiente:

dw_dat.modify('compute_foto.OriginalSize = TRUE ')

y no pasa nada
tambien he probado con:

dw_dat.modify('p_4.OriginalSize( ) = TRUE ')
y tampoco pasa nada.

Tambie he probado insertando un control picture en mi datawindow (p_foto), me muestra la imagen
pero tampoco logro que se muestreen su tamaño original, he utilizado el siguiente codigo:

dw_dat.modify('p_foto.OriginalSize= TRUE')
y
dw_dat.modify('p_4.OriginalSize()= TRUE')

Por favor dime en que estoy fallando...
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

RE:mostrar imagen en un DW

Publicado por JM (15 intervenciones) el 08/06/2001 13:00:13
Los objetos Compute no tienen ningún atributo que sea OriginalSize, así que tendrás que hacer uso de los siguientes:

dw.Mofiy( "compute_foto.Height.AutoSize=yes" )
dw.Mofiy( "compute_foto.Width.AutoSize=yes" )

Con esto harás que se ajuste al alto y ancho respectivamente.

Saludos

Jose M. Navarro.
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

RE:mostrar imagen en un DW

Publicado por Ricardo (1957 intervenciones) el 08/06/2001 15:37:25
Caray!, si no lo tienen no sé como lo he estado usando y funciona!!
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

RE:mostrar imagen en un DW

Publicado por Ricardo (1957 intervenciones) el 08/06/2001 20:46:11
Esas propiedades son para permitir que el usuario pueda modificar el tañamo del objeto no para que se dimensione automaticamente.
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

RE:mostrar imagen en un DW

Publicado por Ricardo (1957 intervenciones) el 08/06/2001 20:46:45
Esas propiedades son para permitir que el usuario pueda modificar el tamaño del objeto no para que se dimensione automaticamente.
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

RE:mostrar imagen en un DW

Publicado por JM (15 intervenciones) el 11/06/2001 10:50:29
Si quieres que te diga la verdad, yo no lo he probado, pero la ayuda dice que Height.AutoSize y Width.AutoSize son para que el tamaño del campo se ajuste a su contenido.
Para hacer que el usuario cambie el tamaño es el atributo Resizeable.
Pero ya te digo que no lo he probado y puede ser que la ayuda esté mal.

Estoy suponiendo que utilizas un objeto Bitmap, si fuese un compute, la cosa sería distinta.

Saludos

Jose Manuel Navarro
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

RE:mostrar imagen en un DW

Publicado por ismael (8 intervenciones) el 16/06/2001 02:57:13
estoy usando un campo compute
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