Foros del Web » Programando para Internet » PHP »

Manejo de Imagenes en php

Estas en el tema de Manejo de Imagenes en php en el foro de PHP en Foros del Web. hola actualmente he visto 2 metodos de mnejo de imagenes una es haciendo un copy de la imagen a una carpeta de nuestro site y ...
  #1 (permalink)  
Antiguo 02/01/2006, 00:23
 
Fecha de Ingreso: noviembre-2003
Mensajes: 34
Antigüedad: 20 años, 4 meses
Puntos: 0
Manejo de Imagenes en php

hola actualmente he visto 2 metodos de mnejo de imagenes una es haciendo un copy de la imagen a una carpeta de nuestro site y la otra es guardando la imagen en la base de datos...

lo que me gustaria saber cual es el mas recomendable de manejar.. por q hasta lo q he visto :

- copiando la imagen a nuestro site puedes generar thumbnails de la imagen, puede haber problemas de permisos cuando intentas reemplazar la imagen x ftp directamente pero se soluciona haciendo un chmod y listo, ademas se puede acceder a la imagen fisicamente desde una url

- guardando las imnagenes en la base de datos se automatiza mejor el manejo de la ifnormacion con simple delete o update puedo o borrar la imagen. el problema es q cuando intentas guardar la imagen se guarda como BMP y con un tamaño mayor al de la base datos y la imagen real, tampoco no puedes agrandar la iamgen x ejmplo si creo una miniatura de 100 x 100 px si deseas agrandarlo a 120 px 120 px solo saldra con un tamaño de 100 PX..

bueno eso es lo q he visto en diferencia entre los 2 metodos de manejo de imagenes lo que me gustaria saber cual de estos metodos es recomendable trabajar y/o q mas ventajas y desventajas existen entre ellos....
  #2 (permalink)  
Antiguo 02/01/2006, 06:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
- copiando la imagen a nuestro site puedes generar thumbnails de la imagen, puede haber problemas de permisos cuando intentas reemplazar la imagen x ftp directamente pero se soluciona haciendo un chmod y listo, ademas se puede acceder a la imagen fisicamente desde una url
Los thumbnails también los puedes generar desde imagenes que estén en un campo de tu BD (sólo que se tratan con las funciones GD u otras como un "string").

La imagen puede NO quedar accesible por el URL tan sólo colocando dichas imagenes fuera de tu "docummentRoot" y que sea un script PHP el que entregue la imagen tipo:

<img src="dame_imagen.php?img=nose.jpg">

En ese script PHP .. ahí tendrías tu lógica de validaciones y demás para restringir el acceso si lo requieres .. exactamente igual que si la imagen la obtienes por una consulta SQL a tu BD y está en binario en un campo .. sólo que ahora la "lees" con funciones tipo readfile() y compones tus cabeceras HTTP desde la ubicación del path absoluto donde esté el archivo en sí en ese servidor (y sobre todo fuera del "DocumentRoot".

Cita:
- guardando las imnagenes en la base de datos se automatiza mejor el manejo de la ifnormacion con simple delete o update puedo o borrar la imagen. el problema es q cuando intentas guardar la imagen se guarda como BMP y con un tamaño mayor al de la base datos y la imagen real, tampoco no puedes agrandar la iamgen x ejmplo si creo una miniatura de 100 x 100 px si deseas agrandarlo a 120 px 120 px solo saldra con un tamaño de 100 PX..
Realmente la imagen no se guarda como "BMP" .. sino en "binario" (o ASCII codificado en base64 si no me equivoco). Eres tu el que debes guardarte junto con la imagen el formato MIME de esta para luego poder reproducirla correctamente según el formato de esta. Lo mismo haces con el tamaño original de la imagen (si quieres almacenarlo) .. También te puedes guardar el tamaño de la imagen fisico para usarlo con otros fines en la BD a la hora de subir tu imagen a tu BD .. (este dato lo puedes obtener de un archivo físico o bien en un proceso de Upload).

El tema que comentas que queda en la BD algo más grande que el original .. no lo he probado .. pero por la codificación que te comento anteriormente es problable que sea así y por ese motivo.

La imagen la puedes trabajar exactamente igual con funciones como GD para generar todo tipo de "thumbnails" o tratamiento de la imagen. Eso sí .. se ha de tratar como "string" (imagecreatefromstring() .. )

* En resumen ... puedes trabajar de la misma forma los archivos los trates como archivos físicos o estén en tus BD.

Las diferencias sustanciales son de rendimiento, .. trabajar archivos "pesados" (varios Megabytes) sobre la mayoría de BBDD suele ser poco optimio para las consultas SQL .. Pero bueno .. depende del "motor" de BD que uses .. algunos como Mysql no trabajan muy bien campos tipo "BLOB" (o superiores) .. otros como "Oracle" si que lo trabajan mejor. Lo mejor en estos casos es simplemente problarlo en tu caso concreto.

Lo que te facilita mucho trabajar con archivos sobre BBDD integros (en binario) es a la hora de hacer copias de seguridad (respaldos) de tu BD .. todo lo tienes en el "SQL" y no por separado, .. asumiendo que uno tal vez gestiona en una aplicación toda la información ("contenido") de un sitio sobre una BD .. ahí estarían también los archivos/imagenes (realmente dá igual si son imagenes o archivos .. el tratamiento es igual).

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:59.