Foros del Web » Programando para Internet » PHP »

redimensionar imagen

Estas en el tema de redimensionar imagen en el foro de PHP en Foros del Web. el cliente sube 4 archivos de imagen y guardo las rutas en una base de datos mysql. todas esas imagenes son guardadas en un directorio ...
  #1 (permalink)  
Antiguo 26/10/2006, 22:21
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 3 meses
Puntos: 1
redimensionar imagen

el cliente sube 4 archivos de imagen y guardo las rutas en una base de datos mysql.

todas esas imagenes son guardadas en un directorio imagen/cliente y guardadas en base de datos con la ruta ejemplo imagen.jpg el tipo de datos es varchar y en campos diferentes imagen1 imagen2 ......

tengo el script php para subir y funciona tambien logro ver la imagen en la pagina

ahora lo que debo hacer es lo siguiente y no se como implementarlo

1)debo mostrar la 1ºimagen a un tamaño 80px x 80px en una pagina y las 4 en total con otra dimension 150px x 150px en otra pagina
me conviene dimensionarla en la misma pagina o hacer una carpeta de thumbs y guardarla alli a la base de datos?

como funciona hacer un thumbnails y que lo guarde en una carpeta? es automatico osea el cliente sube su imagen a imagen/cliente y el script automaticamente dimensiona la imagen y la guarda en imagen/cliente/thumbs? o tengo que ejecutar yo el script manualmente
cual es la fortma mas comoda?

2)para que no haya duplicidad de archivos en el directorio estaba pensando que al archivo que suba el cliente se le agregue 2 o 3 caracteres o se le sume un campo id que es unico por ejemplo campoid+imagen.jpg
cual seria el script para hacer esto.
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
  #2 (permalink)  
Antiguo 27/10/2006, 05:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
1) .. Ahí estás en el dilema de siempre: tiempo proceso vs espacio en disco.

Por supuesto que si en el proceso de "upload" de esas imagenes tu le aplicas tu proceso de generación de tus "thumbs" .. optimizas la ejecución de tus scripts .. pues ese proceso lo harás una vez (cuando suba la imagen o se modifique).

La decisión de que método usar: generar el thumb como archivo o bien mostrarlo en línea (generado en tiempo real al vuelo ..) depende de tu aplicación. Si tu no vas a ofrecer a tu usuario la posibilidad de crear esos Thumb's con las dimensiones que quiera .. y son fijos, usa la primera opción: genera el thumb como archivo. Si el usuario podría tener la opción de personalizar esa generación de la imagen .. ahí es necesario generarlo al vuelo,

La generación del Thumbnail se hace en el mismo script que tu procesas el Upload del archivo (por qué supongo que tendras un formulario HTML para tal fin? .. o las suben por "FTP" las imagenes? ..)

Todas las funciones de tratamiento de imagenes (en GD por ejemplo: www.php.net/gd) tienen un parámetro para indicar que generas un archivo (y en que ruta con el nombre que gustes .. por ejemplo algo como thumb_nombrOriginal.tal)

Si buscas en el foro por "thumbnails" veras muchos ejemplos de funciones para crearlos, también en las FAQ's del foro PHP y en sitios como www.phpclasses.org y por supuesto en la documentación oficial de PHP sobre funciones de tratamiento de imagenes GD: www.php.net/gd

2) .. Deberías usar un identificador "único" y aleatorio en lo posible, aunque te podría servir simplemente dejar como "pre-fijo" al nombre del archivo un ID (si es que gestionas tus datos sobre una BBDD y previamente lo obtienes) o un microtime() .. o aplicar la función "uniqueid()" .. o similar. El caso es que a su vez .. cuando tengas generado tu nombre de archivo definitivo (con tu "pre-fijo") verifiques que no exista el archivo: file_exists()

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 27/10/2006, 09:27
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 3 meses
Puntos: 1
primeramente gracias por tu respuesta

los archivos son subidos mediante un form html y codigo php en realidad las imagenes que suben los usuarios necesito presentarlas en dos tamaños fijos (el usuario no puede cambiar los tamaños).. en una pagina va ir una imagen de 80 x 77px y en una pagina que es de detalles las 4 imagenes mas grandes.

segun esto creo que me conviene generar las imagenes en tiempo real al presentarla .. o hay un codigo donde el usuario al subir las imagenes las guarde en dos tamaños diferentes?.

por favor si tienes un codigo asi por favor me indiques donde encontrarlo

en todo caso mejor que al hacer upload al archivo un codigo me agregue al principio del archivo el id del usuario que tengo grabado en BD si me das una pista de que codigo usar para hacerlo estare muy agradecido no pretendo que me hagas el codigo por que no quiero abusar de tu tiempo y tenerlo todo hecho solo dame pistas para buscar en la red o como "pensarlo" asi de paso aprendo
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
  #4 (permalink)  
Antiguo 27/10/2006, 11:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
segun esto creo que me conviene generar las imagenes en tiempo real al presentarla .. o hay un codigo donde el usuario al subir las imagenes las guarde en dos tamaños diferentes?.
Te estás contradiciendo en lo que comentas .. Si dices que te conviene generar la imagen en tiempo real .. eso se hará según se presente una u otra a diferente tamaño.

Si hablas de "que se guarden en dos tamaños" ... ahí ya no se generan en "Tiempo real" .. (bueno .. el proceso se hará una sóla vez .. ).

Cita:
por favor si tienes un codigo asi por favor me indiques donde encontrarlo
Te indiqué sitios donde encontrar lo que buscas. Sólo tienes que tener presente que te hace falta una "función" para poder llamarla cuando lo necesites (en concreto dos veces . .una para genear un "thumbnail" en un tamaño y otra vez usarla para el otro tamaño).

La palabra "mágica" a usar en cualquier buscador (incluido en este foro) es:
Thumbnail.

Algunas classes que puedes probar:
http://phpthumb.sourceforge.net/

Y en www.phpclasses.org como ya te comenté tienes muchas más.

Cuando tengas claro ese punto y su uso .. ahí vemos el otro, pero antes debes saber "subir" un archivo en general al servidor. Esto lo puedes ver en la documentación oficial de PHP y si usas el buscador de este foro y buscas por "upload" (en el foro de PHP):

http://www.php.net/manual/es/features.file-upload.php

En resumen .. los pasos que debes ir resolviendo (por este orden):
1) Subir archivos al servidor (Upload HTTP) vía formulario HTML y campo "file".
2) Generar un Thumbnail desde la imagen que subistes.
3) Manejar el nombre que le das al thumbnail que creas .. generando algún tipo de identificador único y aleatório en lo posible.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 12:38.