Espacio ocupado por un jpg guardado en un campo General

28/06/2005 - 15:39 por Josep Maria | Informe spam
Hola, tengo el siguiente problema:

Tengo un fichero jpg que ocupa físicamente 104K, el caso es que
agrego esa imagen JPG a un campo de tipo general (en una tabla que solo
tiene un registro con ese único campo), haciendo lo siguiente:

CREATE TABLE C:\Tabla.dbf (CAMPO G)
USE C:\TABLA IN 0 EXLUSIVE
APPEND BLANK
APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG
USE

Si a continuación consulto por el explorador de archivos el tamaño del
archivo TABLA.DBF y TABLA.FPT me encuentro con la siguiente sorpresa:

Tamaño del archivo TABLA.DBF: 334 bytes
Tamaño del archivo TABLA.FPT: 4,350,016 bytes !!

Es decir, un archivo jpg que ocupa 105k al guardarlo como campo general en
una tabla me pasa a ocupar 4,5 Mb ... Cómo puede ser eso posible ? Hay alguna
forma de hacer que no ocupe tanto ?

He probado cambiando la linea del APPEND GENERAL por la siguiente, el
resultado es el mismo:

APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG CLASS PBRUSH

Me da la impressión de que a pesar de ser un archivo jpg, internamente lo
guarda como bmp de 24 bits, però aun así tampoco me cuadra pues he editado la
imagen jpg con el Paint y la he guardado como BMP de 24 bits y me da un
tamaño de 1 Mb aprox., lo cual se queda aun muy lejos de los 4,5 Mb que ocupa
el archivo FPT.

Haciendo un PACK MEMO continua ocupando lo mismo, es decir, 4,5 Mb.

Preguntas similare

Leer las respuestas

#1 Victor B.
28/06/2005 - 19:05 | Informe spam
El problema es que con APPEND GENERAL, estás 'incrustando el objeto', por lo
que no solamente entra el JPG si no también la aplicación que tienes
relacionada con él. Se guarda `pues información de la aplicación que en tu
equipo está asociada con el objeto(PAINT)...
No se recomienda almacenar las imágenes en campos GENERAL debido a que
aumentan peligrosamente el tamaño de los FTP. La técnica que más se
recomienda es usar campos MEMO donde guardas la carpeta y nombre del archivo
de imagen, y la imagen se encuentra guardada en dicha carpeta...


Víctor Brasó
Desarrollador independiente

"Josep Maria" <Josep escribió en el mensaje
news:
Hola, tengo el siguiente problema:

Tengo un fichero jpg que ocupa físicamente 104K, el caso es que
agrego esa imagen JPG a un campo de tipo general (en una tabla que solo
tiene un registro con ese único campo), haciendo lo siguiente:

CREATE TABLE C:\Tabla.dbf (CAMPO G)
USE C:\TABLA IN 0 EXLUSIVE
APPEND BLANK
APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG
USE

Si a continuación consulto por el explorador de archivos el tamaño del
archivo TABLA.DBF y TABLA.FPT me encuentro con la siguiente sorpresa:

Tamaño del archivo TABLA.DBF: 334 bytes
Tamaño del archivo TABLA.FPT: 4,350,016 bytes !!

Es decir, un archivo jpg que ocupa 105k al guardarlo como campo general en
una tabla me pasa a ocupar 4,5 Mb ... Cómo puede ser eso posible ? Hay


alguna
forma de hacer que no ocupe tanto ?

He probado cambiando la linea del APPEND GENERAL por la siguiente, el
resultado es el mismo:

APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG CLASS PBRUSH

Me da la impressión de que a pesar de ser un archivo jpg, internamente lo
guarda como bmp de 24 bits, però aun así tampoco me cuadra pues he editado


la
imagen jpg con el Paint y la he guardado como BMP de 24 bits y me da un
tamaño de 1 Mb aprox., lo cual se queda aun muy lejos de los 4,5 Mb que


ocupa
el archivo FPT.

Haciendo un PACK MEMO continua ocupando lo mismo, es decir, 4,5 Mb.



Respuesta Responder a este mensaje
#2 M
28/06/2005 - 19:38 | Informe spam
Lo que podrias hacer es guardar en un campo tipo caracter la ruta del
archivo de imagen o en su caso
usar el nuevo tipo de dato BLOB que esta disponible en VFP9

Saludos.

Cruz
Merida, Yucatán, México

"Victor B." escribió en el mensaje
news:
El problema es que con APPEND GENERAL, estás 'incrustando el objeto', por


lo
que no solamente entra el JPG si no también la aplicación que tienes
relacionada con él. Se guarda `pues información de la aplicación que en tu
equipo está asociada con el objeto(PAINT)...
No se recomienda almacenar las imágenes en campos GENERAL debido a que
aumentan peligrosamente el tamaño de los FTP. La técnica que más se
recomienda es usar campos MEMO donde guardas la carpeta y nombre del


archivo
de imagen, y la imagen se encuentra guardada en dicha carpeta...


Víctor Brasó
Desarrollador independiente

"Josep Maria" <Josep escribió en el


mensaje
news:
> Hola, tengo el siguiente problema:
>
> Tengo un fichero jpg que ocupa físicamente 104K, el caso es que
> agrego esa imagen JPG a un campo de tipo general (en una tabla que solo
> tiene un registro con ese único campo), haciendo lo siguiente:
>
> CREATE TABLE C:\Tabla.dbf (CAMPO G)
> USE C:\TABLA IN 0 EXLUSIVE
> APPEND BLANK
> APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG
> USE
>
> Si a continuación consulto por el explorador de archivos el tamaño del
> archivo TABLA.DBF y TABLA.FPT me encuentro con la siguiente sorpresa:
>
> Tamaño del archivo TABLA.DBF: 334 bytes
> Tamaño del archivo TABLA.FPT: 4,350,016 bytes !!
>
> Es decir, un archivo jpg que ocupa 105k al guardarlo como campo general


en
> una tabla me pasa a ocupar 4,5 Mb ... Cómo puede ser eso posible ? Hay
alguna
> forma de hacer que no ocupe tanto ?
>
> He probado cambiando la linea del APPEND GENERAL por la siguiente, el
> resultado es el mismo:
>
> APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG CLASS PBRUSH
>
> Me da la impressión de que a pesar de ser un archivo jpg, internamente


lo
> guarda como bmp de 24 bits, però aun así tampoco me cuadra pues he


editado
la
> imagen jpg con el Paint y la he guardado como BMP de 24 bits y me da un
> tamaño de 1 Mb aprox., lo cual se queda aun muy lejos de los 4,5 Mb que
ocupa
> el archivo FPT.
>
> Haciendo un PACK MEMO continua ocupando lo mismo, es decir, 4,5 Mb.
>
>
>


Respuesta Responder a este mensaje
#3 Carlos Sanchez
29/06/2005 - 15:27 | Informe spam
Y como se haria en el caso de que fuera un sistema tipo cliente servidor, en
donde se debe guardar una imgen en una maquina remota ?
"Victor B." wrote in message
news:
El problema es que con APPEND GENERAL, estás 'incrustando el objeto', por


lo
que no solamente entra el JPG si no también la aplicación que tienes
relacionada con él. Se guarda `pues información de la aplicación que en tu
equipo está asociada con el objeto(PAINT)...
No se recomienda almacenar las imágenes en campos GENERAL debido a que
aumentan peligrosamente el tamaño de los FTP. La técnica que más se
recomienda es usar campos MEMO donde guardas la carpeta y nombre del


archivo
de imagen, y la imagen se encuentra guardada en dicha carpeta...


Víctor Brasó
Desarrollador independiente

"Josep Maria" <Josep escribió en el


mensaje
news:
> Hola, tengo el siguiente problema:
>
> Tengo un fichero jpg que ocupa físicamente 104K, el caso es que
> agrego esa imagen JPG a un campo de tipo general (en una tabla que solo
> tiene un registro con ese único campo), haciendo lo siguiente:
>
> CREATE TABLE C:\Tabla.dbf (CAMPO G)
> USE C:\TABLA IN 0 EXLUSIVE
> APPEND BLANK
> APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG
> USE
>
> Si a continuación consulto por el explorador de archivos el tamaño del
> archivo TABLA.DBF y TABLA.FPT me encuentro con la siguiente sorpresa:
>
> Tamaño del archivo TABLA.DBF: 334 bytes
> Tamaño del archivo TABLA.FPT: 4,350,016 bytes !!
>
> Es decir, un archivo jpg que ocupa 105k al guardarlo como campo general


en
> una tabla me pasa a ocupar 4,5 Mb ... Cómo puede ser eso posible ? Hay
alguna
> forma de hacer que no ocupe tanto ?
>
> He probado cambiando la linea del APPEND GENERAL por la siguiente, el
> resultado es el mismo:
>
> APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG CLASS PBRUSH
>
> Me da la impressión de que a pesar de ser un archivo jpg, internamente


lo
> guarda como bmp de 24 bits, però aun así tampoco me cuadra pues he


editado
la
> imagen jpg con el Paint y la he guardado como BMP de 24 bits y me da un
> tamaño de 1 Mb aprox., lo cual se queda aun muy lejos de los 4,5 Mb que
ocupa
> el archivo FPT.
>
> Haciendo un PACK MEMO continua ocupando lo mismo, es decir, 4,5 Mb.
>
>
>


Respuesta Responder a este mensaje
#4 Victor B.
29/06/2005 - 15:59 | Informe spam
En un sistema tipo 'cliente-servidor', supongo que conoces la ruta de la
máquina remota donde guardas los datos para acceder a ellos. De la misma
forma debes implementar una variable pública u otra forma(p.e., una
propiedad del objeto _SCREEN, las variables públicas son poco
recomendables), donde guardas la ruta de la carpeta donde guardas las
imágenes. Incluso, en las máquinas clientes podrías tener una carpeta
temporal, donde a través de funciones como ADIR y sentencias como COPY FILE
te traes las imágenes que el usuario queire ver, y compruebas si ya las
tiene la carpeta temporal y si miden lo mismo y tienen la misma fecha, para
en ese caso, mostrar la de la carpeta temporal. Así reduces el tráfico en la
red.


Víctor Brasó
Desarrollador independiente

"Carlos Sanchez" escribió en el mensaje
news:%
Y como se haria en el caso de que fuera un sistema tipo cliente servidor,


en
donde se debe guardar una imgen en una maquina remota ?
"Victor B." wrote in message
news:
> El problema es que con APPEND GENERAL, estás 'incrustando el objeto',


por
lo
> que no solamente entra el JPG si no también la aplicación que tienes
> relacionada con él. Se guarda `pues información de la aplicación que en


tu
> equipo está asociada con el objeto(PAINT)...
> No se recomienda almacenar las imágenes en campos GENERAL debido a que
> aumentan peligrosamente el tamaño de los FTP. La técnica que más se
> recomienda es usar campos MEMO donde guardas la carpeta y nombre del
archivo
> de imagen, y la imagen se encuentra guardada en dicha carpeta...
>
>
> Víctor Brasó
> Desarrollador independiente
>
> "Josep Maria" <Josep escribió en el
mensaje
> news:
> > Hola, tengo el siguiente problema:
> >
> > Tengo un fichero jpg que ocupa físicamente 104K, el caso es que
> > agrego esa imagen JPG a un campo de tipo general (en una tabla que


solo
> > tiene un registro con ese único campo), haciendo lo siguiente:
> >
> > CREATE TABLE C:\Tabla.dbf (CAMPO G)
> > USE C:\TABLA IN 0 EXLUSIVE
> > APPEND BLANK
> > APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG
> > USE
> >
> > Si a continuación consulto por el explorador de archivos el tamaño del
> > archivo TABLA.DBF y TABLA.FPT me encuentro con la siguiente sorpresa:
> >
> > Tamaño del archivo TABLA.DBF: 334 bytes
> > Tamaño del archivo TABLA.FPT: 4,350,016 bytes !!
> >
> > Es decir, un archivo jpg que ocupa 105k al guardarlo como campo


general
en
> > una tabla me pasa a ocupar 4,5 Mb ... Cómo puede ser eso posible ? Hay
> alguna
> > forma de hacer que no ocupe tanto ?
> >
> > He probado cambiando la linea del APPEND GENERAL por la siguiente, el
> > resultado es el mismo:
> >
> > APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG CLASS PBRUSH
> >
> > Me da la impressión de que a pesar de ser un archivo jpg, internamente
lo
> > guarda como bmp de 24 bits, però aun así tampoco me cuadra pues he
editado
> la
> > imagen jpg con el Paint y la he guardado como BMP de 24 bits y me da


un
> > tamaño de 1 Mb aprox., lo cual se queda aun muy lejos de los 4,5 Mb


que
> ocupa
> > el archivo FPT.
> >
> > Haciendo un PACK MEMO continua ocupando lo mismo, es decir, 4,5 Mb.
> >
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Ana María Bisbé York
29/06/2005 - 16:53 | Informe spam
Hola Josep María:

Si tienes VFP 9.0 hay una excelente solución de Doug Hennig para convertir
el contenido de un campo general a un campo tipo Blob. Lo tienes en:
http://reportlistener.com/files


Saludos,

Ana
www.amby.net


"Josep Maria" <Josep escribió en el mensaje
news:
Hola, tengo el siguiente problema:

Tengo un fichero jpg que ocupa físicamente 104K, el caso es que
agrego esa imagen JPG a un campo de tipo general (en una tabla que solo
tiene un registro con ese único campo), haciendo lo siguiente:

CREATE TABLE C:\Tabla.dbf (CAMPO G)
USE C:\TABLA IN 0 EXLUSIVE
APPEND BLANK
APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG
USE

Si a continuación consulto por el explorador de archivos el tamaño del
archivo TABLA.DBF y TABLA.FPT me encuentro con la siguiente sorpresa:

Tamaño del archivo TABLA.DBF: 334 bytes
Tamaño del archivo TABLA.FPT: 4,350,016 bytes !!

Es decir, un archivo jpg que ocupa 105k al guardarlo como campo general en
una tabla me pasa a ocupar 4,5 Mb ... Cómo puede ser eso posible ? Hay


alguna
forma de hacer que no ocupe tanto ?

He probado cambiando la linea del APPEND GENERAL por la siguiente, el
resultado es el mismo:

APPEND GENERAL CAMPO FROM C:\IMAGEN.JPG CLASS PBRUSH

Me da la impressión de que a pesar de ser un archivo jpg, internamente lo
guarda como bmp de 24 bits, però aun así tampoco me cuadra pues he editado


la
imagen jpg con el Paint y la he guardado como BMP de 24 bits y me da un
tamaño de 1 Mb aprox., lo cual se queda aun muy lejos de los 4,5 Mb que


ocupa
el archivo FPT.

Haciendo un PACK MEMO continua ocupando lo mismo, es decir, 4,5 Mb.



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida