PDA

Ver la Versión Completa : Manejo de Imagenes


Dclase
18-03-2008, 20:43:34
Saludos a todos primeramente....
A ver quie me podria ayudar con unas imagenes.
Estoy con un proyencto en el que necesito almacenar unas imagenes, actualmente lo hago almacenando en la DB solo la ruta del directirio, pero hay un problema y es que cuando un usuario entra al sistema le permite buscar la imagen en cualquier lugar, y luego cuando alguien mas entra desde otra PC, no va a poder cargar la imagen ya que no estara en la ruta especificada, por ejemplo C:\Imagenes\Image1,

el usuario que no tenga esa carpeta con esa imagen y nombre, no va a poder visualizar nada, y seria demasiado ir PC por PC a gravar cada imagen.

Lo que busco es almacenar la imagen en la DB, aunque eso ya lo hice, el problema es, que no se como visualizar la imagen luego de almacenada, lo podria hacer con un DBImage, pero la imagenes no tienen un tamaño fijo y no se como ajustarla, y ademas que a la hora de gravar en la tabla todas se me guarden con el mismo formato (JPEG o BMP):confused:

Les agradeceria su ayuda, please....

Neftali [Germán.Estévez]
19-03-2008, 09:58:08
Antes de nada comentar que no dices qué tipo de BD estás utilizando... Eso podría ayudar.


(1) Estoy con un proyencto en el que necesito almacenar unas imagenes, actualmente lo hago almacenando en la DB solo la ruta del directirio...

(2) el usuario que no tenga esa carpeta con esa imagen y nombre, no va a poder visualizar nada, y seria demasiado ir PC por PC a gravar cada imagen.

(3) lo podria hacer con un DBImage, pero la imagenes no tienen un tamaño fijo y no se como ajustarla

(4)...y ademas que a la hora de gravar en la tabla todas se me guarden con el mismo formato (JPEG o BMP)


(1) Hay mucha gente que piensa que dependiendo del tamaño de las imágenes y del volumen de ellas esa es una mejor opción que guardarlas dentro de la Base de Datos.

(2) Normalmente eso se corrige no guardándolas en un directorio de la máquina, sino en un directorio de red, donde todos los usuarios tengan acceso y la misma ruta.

(3) El DBImage es el control que tiene delphi para ello. Revisa la propiedad Strech para ajustar el tamaño de la imagen o ajusta el tamaño del control a las imágenes más pequeñas sin lo necesitas

(4) Para solucionar esto puedes convertir las imágenes antes de guardarlas. Si busca en los trucos del Club creo que hay uno que hace esta conversión...

Un saludo.

Dclase
19-03-2008, 13:35:47
Saludos nuevamente....
creo que me falto algo si:
la DB que uso es SQL Server, el problema con el directorio en la red es, que no todos los usuarios a la hora de gravar la imagen, la ponen ahi..

por otra parte, el problema con el Strench es que las imagenes se desforman si uso esa propiedad, y si, en los trucos creo que vi como convertirla e incluso como ajustarla a un mismo tamaño todas a la hora de visualizarla, pero esto con una funcion en la que con una variable Bitmap (TBitmap) toma la imagen de un directorio y la ajusta al tamaño necesario, el problema es que no se como pasar entonces la imagen desde el campo de la tabla de la DB, ya que solo me lo hace con la imagen desde el directorio en que se encuentra [ Bitmap := LoadGraphicsFile(OpenPictureDialog1.Filename) ]

Lepe
19-03-2008, 15:18:33
Saludos nuevamente....
creo que me falto algo si:
la DB que uso es SQL Server, el problema con el directorio en la red es, que no todos los usuarios a la hora de gravar la imagen, la ponen ahi..

El usuario tendrá que indicar a tu programa donde tiene la foto, por ejemplo en c:\imagenes\image1.jpg, pues tu programa la carga en un TImage y después la guarda en la ruta del servidor (la que tengas prefijada). En la base de datos, guardas la ruta del servidor. Ya todas las fotos las tienes en el servidor.

Si usas esta forma, ya tienes solventada tu segunda duda ;).

Saludos

Dclase
19-03-2008, 17:33:03
Bueno, creo que no me explique bien la primera vez.

lo que realmente necesito ahora es, saber como visualizar las imagenes guardadas en la tabla de SQL (campo tipo Image), en un TImage en mi aplicacion, osea cómo asigno el valor del campo al TImage.

Lo podría hacer con un TDBImage, pero no se como ajustar el tamaño de la misma sin usar Strench, ya que se desforma la imagen si es mas ancha que larga o biceversa...

en conclusion, ¿Cómo asigno el valor del campo al TImage, y como ajusto el tamaño sin usar Strench?

Gracias por su atencion.

courtois
24-03-2008, 07:27:55
para asignar el valor del campo al TImage pues usas Assign, el TImage tiene otra propiedad llamada Proportional, esta junto con Strech, hacen que no se deforme la imagen al ajustarla

Dclase
24-03-2008, 17:48:46
hey, gracias chico, no habia visto esa propiedad (Proportional)..
ahora la voy a probar y le dejo saber si ya asi me resulta.

Muchas Gracias por su ayuda.

SLD's.

Jab
23-07-2008, 11:38:55
A mi esa propiedad de Proportional en el TImage no me aparece, ¿que versión de Delphi usáis?