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.
 

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.



Preguntas similares